Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 6d91d381

Von Christian Ehringfeld vor fast 9 Jahren hinzugefügt

  • ID 6d91d3817e9a022261ec6fb5935c055967ca91ac
  • Vorgänger f5087482
  • Nachfolger ac8aede7

some bug fixes, caching works

Unterschiede anzeigen:

src/querybuilder.cpp
QString r = "";
auto superMetaObject = e->metaObject()->superClass();
if (e->getInheritanceStrategy() == JOINED_TABLE
&& QString(superMetaObject->className()) != QString("CuteEntityManager::Entity")) {
qDebug() << superMetaObject->className();
&& QString(superMetaObject->className()) !=
QString("CuteEntityManager::Entity")) {
Entity *superClass = EntityInstanceFactory::createInstance(
superMetaObject->className());
if (superClass) {
......
}
}
}
if (QString(superMetaObject->className()) != QString("CuteEntityManager::Entity")
&& entity.data()->getInheritanceStrategy() != JOINED_TABLE) {
if (!(QString(superMetaObject->className()) !=
QString("CuteEntityManager::Entity")
&& entity.data()->getInheritanceStrategy() == JOINED_TABLE)) {
map.insert(entity.data()->getPrimaryKey(), this->schema.data()->TYPE_BIGPK);
}
return map;
......
return r;
}
QSqlQuery QueryBuilder::find(const QSharedPointer<Entity> &entity,
qint64 offset) const {
QSqlQuery QueryBuilder::find(const qint64 &id, const QSharedPointer<Entity> &entity, qint64 offset) const
{
QSqlQuery q = this->database.data()->getQuery(this->selectBase(QStringList(
entity.data()->getTablename())) + " " + this->joinSuperClasses(
entity) + " WHERE id= :id " + this->limit(1, offset));
q.bindValue(":id", entity.data()->getId());
entity.data()->getTablename())) + this->joinSuperClasses(
entity) + " WHERE id= :id" + this->limit(1, offset));
q.bindValue(":id", id);
return q;
}
......
const qint64 limit, qint64 offset) {
return this->database->getQuery(this->selectBase(QStringList(
entity.data()->getTablename())) + " " + this->joinSuperClasses(
entity) + " " + this->limit(limit, offset) + ";");
entity) + this->limit(limit, offset) + ";");
}
/**
......
const {
auto stack = entity.data()->superClasses();
QString joined = "";
bool first = true;
Entity *e = 0;
while (!stack.isEmpty()) {
auto metaObject = stack.pop();
e = EntityInstanceFactory::createInstance(metaObject->className());
if (first) {
first = false;
} else {
if (e) {
joined.append(" ");
}
}
if (e) {
joined.append(" ");
joined.append(this->leftJoin(e->getTablename(), entity.data()->getTablename(),
e->getPrimaryKey(), entity.data()->getPrimaryKey()));
}

Auch abrufbar als: Unified diff