Revision df1e56bd
Von Christian Ehringfeld vor fast 9 Jahren hinzugefügt
src/querybuilder.cpp | ||
---|---|---|
|
||
QList<QSqlQuery> QueryBuilder::createOrMerge(const QSharedPointer<Entity>
|
||
&entity, bool insert) const {
|
||
auto attrs = this->inheritedAttributes(entity);
|
||
const QList<ClassAttributes> attrs = this->inheritedAttributes(entity);
|
||
auto queries = QList<QSqlQuery>();
|
||
for (int var = 0; var < attrs.size(); ++var) {
|
||
auto attr = attrs.at(var);
|
||
... | ... | |
if ((r.getType() == MANY_TO_ONE && props.contains(i.key()))
|
||
|| (r.getType() == ONE_TO_ONE && r.getMappedBy().isEmpty())) {
|
||
auto v = props.value(i.key()).read(entity.data());
|
||
if (v.canConvert<Entity *>()) {
|
||
this->insertRelationId(qvariant_cast<Entity *>(v), map, i.key());
|
||
} else if (v.canConvert<QSharedPointer<Entity>>()) {
|
||
this->insertRelationId(qvariant_cast<QSharedPointer<Entity>>(v).data(), map,
|
||
i.key());
|
||
} else if (v.canConvert<QPointer<Entity>>()) {
|
||
this->insertRelationId(qvariant_cast<QPointer<Entity>>(v).data(), map, i.key());
|
||
QSharedPointer<Entity> e = EntityInstanceFactory::castQVariant(v);
|
||
if (e) {
|
||
this->insertRelationId(e.data(), map, i.key());
|
||
}
|
||
}
|
||
++i;
|
Auch abrufbar als: Unified diff
many-to-one