Revision 31565d02
Von Christian Ehringfeld vor mehr als 6 Jahren hinzugefügt
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
Revert "Merge branch 'seb' of ssh://synlos.net/entitymanager into dev"
This reverts commit 2c89eb94005a9c61337ede9cb858dfb467d3f251, reversing
changes made to 55dc7c8e7203a1f5aadee49ec9693b47d0008928.