Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 6dc7d533

Von Christian Ehringfeld vor etwa 9 Jahren hinzugefügt

  • ID 6dc7d533ca639f159cd733b15f33cd234d36f9c2
  • Vorgänger 24425325
  • Nachfolger d99101ae

...

Unterschiede anzeigen:

src/querybuilder.cpp
auto map = QHash<QString, QString>();
auto o = entity.data()->metaObject();
for (int var = 0; var < o->propertyCount(); ++var) {
o->property(var);
auto m = o->property(var);
if (m.isReadable() && !entity.data()->getTransientAttributes().contains(m.name())) {
/**
@TODO
*/
if (m.isEnumType()) {
map.insert(m.name(), this->schema.data()->getTypeMap().data()->value(this->schema.data()->TYPE_INTEGER));
} else if (entity.data()->getRelations().contains(m.name())) {
map.insert(QString(m.name()) + "_id", this->schema.data()->TYPE_INTEGER);
} else if (entity.data()->getBLOBColumns().contains(m.name())) {
map.insert(m.name(), this->schema.data()->getTypeMap().data()->value(this->schema.data()->TYPE_BINARY));
} else {
map.insert(m.name(), this->transformAbstractTypeToRealDbType(this->transformTypeToAbstractDbType(m.typeName())));
}
}
}
QString pkType = map.value(entity.data()->getPrimaryKey());
if (pkType == this->schema.data()->TYPE_BIGINT) {
map.insert(entity.data()->getPrimaryKey(), this->schema.data()->TYPE_BIGPK);
} else {
map.insert(entity.data()->getPrimaryKey(), this->schema.data()->TYPE_PK);
}
return map;
}
QString QueryBuilder::transformTypeToAbstractDbType(QString typeName) {
QString QueryBuilder::transformTypeToAbstractDbType(QString typeName) const {
QHash<QString, QString> *m = this->schema.data()->getAbstractTypeMap().data();
if (m->contains(typeName)) {
return m->value(typeName);
......
return this->schema.data()->TYPE_TEXT;
}
QString QueryBuilder::transformAbstractTypeToRealDbType(QString typeName) const {
return this->schema.data()->getTypeMap().data()->value(typeName);
}
QHash<QString, QVariant> QueryBuilder::getEntityAttributes(const QSharedPointer<Entity> &entity) {
Entity *e = entity.data();
auto map = QHash<QString, QVariant>();

Auch abrufbar als: Unified diff