Revision 6d91d381
Von Christian Ehringfeld vor fast 9 Jahren hinzugefügt
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
some bug fixes, caching works