Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 2075db87

Von Christian Ehringfeld vor fast 9 Jahren hinzugefügt

  • ID 2075db875392af91438d396402be2f0fe5496508
  • Vorgänger e24791d7
  • Nachfolger 62427ee0

considering cascade type stuff

Unterschiede anzeigen:

src/querybuilder.cpp
QString QueryBuilder::generateManyToManyTableName(const QSharedPointer<Entity>
&firstEntity,
const QSharedPointer<Entity> &secondEntity) const {
return QString(firstEntity.data()->metaObject()->className()).toLower() + "_" +
QString(
secondEntity.data()->metaObject()->className()).toLower();
}
QString QueryBuilder::manyToManyTableName(const QSharedPointer<Entity>
&firstEntity, const QSharedPointer<Entity> &secondEntity,
const Relation &r) const {
QString table = "";
if (r.getMappedBy().isEmpty()) {
table = this->generateManyToManyTableName(firstEntity, secondEntity);
QString first = QString(firstEntity.data()->getClassname());
QString second = QString(secondEntity.data()->getClassname());
if (QString::compare(first, second, Qt::CaseSensitive) <= 0) {
return firstEntity.data()->getTablename() + "_" +
secondEntity.data()->getTablename();
} else {
table = this->generateManyToManyTableName(secondEntity, firstEntity);
return secondEntity.data()->getTablename() + "_" +
firstEntity.data()->getTablename();
}
return table;
}
QHash<QString, QHash<QString, QString>> QueryBuilder::generateRelationTables(
......
QSharedPointer<Entity> ptr = QSharedPointer<Entity>(e);
h.insert(this->generateManyToManyColumnName(ptr),
this->schema.data()->TYPE_BIGINT);
/**
@todo not good
@see EntityManager manyToMany()
**/
relations.insert(this->generateManyToManyTableName(entity, ptr), h);
relations.insert(this->generateManyToManyTableName(entity, ptr), h);
}
}
return relations;

Auch abrufbar als: Unified diff