Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 47d95679

Von Christian Ehringfeld vor mehr als 6 Jahren hinzugefügt

bugfix

Unterschiede anzeigen:

src/entitymanager.cpp
auto iterator = relations.constBegin();
while (iterator != relations.constEnd()) {
const Relation r = iterator.key();
auto var = iterator.value().read(entity.data());
if(!var.isNull() && var.data()) {
QVariant var = iterator.value().read(entity.data());
if(!var.isNull() && var.data() != NULL) {
if (r.getType() == RelationType::MANY_TO_ONE) {
auto e = EntityInstanceFactory::castQVariant(var);
if (e && this->shouldBeSaved(e, r)) {
this->saveObject(e, mergedObjects, true, ignoreHasChanged);
entity->setProperty(r.getPropertyName()+EntityHelper::internalString(),e->getId());
auto fkProp = EntityHelper::mappedProperty(r, e);
if (fkProp.isValid()) {
EntityHelper::addEntityToListProperty(e, entity, fkProp);
......
auto e = EntityInstanceFactory::castQVariant(var);
if(e) {
this->saveObject(e, mergedObjects, true, ignoreHasChanged);
entity->setProperty(r.getPropertyName()+EntityHelper::internalString(),e->getId());
auto prop = EntityHelper::mappedProperty(r, e);
EntityHelper::setProperty(e, entity, prop);
}
......
auto relations = EntityHelper::getRelationProperties(entity.data());
for (auto i = relations.constBegin(); i != relations.constEnd(); ++i) {
const Relation r = i.key();
auto var = i.value().read(entity.data());
QVariant var = i.value().read(entity.data());
if (r.getType() == RelationType::MANY_TO_MANY) {
this->persistManyToMany(entity, r, var, mergedObjects, ignoreHasChanged,
newItem);
......
var);
if (!list.isEmpty()) {
auto fkProp = EntityHelper::mappedProperty(r, list.at(0));
for (int var = 0; var < list.size(); ++var) {
auto e = list.at(var);
for (int x = 0; x < list.size(); ++x) {
auto e = list.at(x);
if (e && this->shouldBeSaved(e, r)) {
EntityHelper::setProperty(e, entity, fkProp);
this->saveObject(e, mergedObjects, true, ignoreHasChanged);
......
if (ok && !list.isEmpty() && list.at(0).data()) {
auto nList = EntityInstanceFactory::castQVariantList(property);
this->persistMappedByRelation(nList, q, entity, ptr, r, tblName, mergedObjects);
entity->setProperty(r.getPropertyName()+EntityHelper::internalString(),EntityHelper::getIdsAsVariant(nList));
}
} else {
this->missingManyToManyTable(tblName, entity, r);

Auch abrufbar als: Unified diff