Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 4e75d5a1

Von Christian Ehringfeld vor mehr als 8 Jahren hinzugefügt

  • ID 4e75d5a1eccaf269829248be40dbe3f2e0160e01
  • Vorgänger 01fe6db3
  • Nachfolger 46d2de48

many-to-many table name resolve

Unterschiede anzeigen:

src/entityhelper.cpp
return newInstance;
}
Entity *EntityHelper::getBaseClassObject(const QSharedPointer<Entity> &entity,
QString attributeName) {
auto superObject = EntityInstanceFactory::createInstance(entity->metaObject());
auto objectBefore = superObject;
bool first = true;
while(superObject) {
auto props = EntityHelper::getMetaProperties(superObject);
if(!props.contains(attributeName) ||
superObject->getInheritanceStrategy() == InheritanceStrategy::PER_CLASS_TABLE) {
break;
} else if(!first){
delete objectBefore;
objectBefore = nullptr;
} else {
first = false;
}
objectBefore = superObject;
superObject = EntityInstanceFactory::newSuperClassInstance(superObject);
}
return objectBefore;
}
const char *EntityHelper::getClassname(const Entity *entity) {
return entity->metaObject()->className();
}

Auch abrufbar als: Unified diff