Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 9971e7d2

Von Christian Ehringfeld vor mehr als 8 Jahren hinzugefügt

  • ID 9971e7d204ee3efd741660a377e883883a77e057
  • Vorgänger f5b682e0
  • Nachfolger 975a7f96

update

Unterschiede anzeigen:

src/querybuilder.cpp
}
this->schema->getTableSchema(tableName);
rc = true;
if (rc) {
rc = this->createIndices(entity);
}
}
}
}
......
queries.append(superIndex);
}
queries.append(this->relationFks(entity));
qDebug() << "create index:" << entity->getTablename() << queries.size();
ok = this->database->transaction(queries);
return ok;
}
......
QString QueryBuilder::createFkSuperClass(const Entity *e) const {
QString r = "";
auto superMetaObject = e->metaObject()->superClass();
if (e->getInheritanceStrategy() == InheritanceStrategy::JOINED_TABLE
&& QString(superMetaObject->className()) !=
this->entityClassname()) {
Entity *superClass = EntityInstanceFactory::createInstance(
superMetaObject->className());
if (superClass) {
QString refColumn = superClass->getPrimaryKey();
QString refTable = superClass->getTablename();
r = this->addForeignKey(this->generateIndexName(e->getPrimaryKey(),
e->getTablename(), refColumn, refTable, true), e->getTablename(),
QStringList(e->getPrimaryKey()), refTable, QStringList(refColumn),
this->getForeignKeyCascade(CASCADE),
this->getForeignKeyCascade(CASCADE));
delete superClass;
if (supportsForeignKeys()) {
auto superMetaObject = e->metaObject()->superClass();
if (e->getInheritanceStrategy() == InheritanceStrategy::JOINED_TABLE
&& QString(superMetaObject->className()) !=
this->entityClassname()) {
Entity *superClass = EntityInstanceFactory::createInstance(
superMetaObject->className());
if (superClass) {
QString refColumn = superClass->getPrimaryKey();
QString refTable = superClass->getTablename();
r = this->addForeignKey(this->generateIndexName(e->getPrimaryKey(),
e->getTablename(), refColumn, refTable, this->supportsForeignKeys()),
e->getTablename(),
QStringList(e->getPrimaryKey()), refTable, QStringList(refColumn),
this->getForeignKeyCascade(CASCADE),
this->getForeignKeyCascade(CASCADE));
delete superClass;
}
}
}
return r;

Auch abrufbar als: Unified diff