Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision df1e56bd

Von Christian Ehringfeld vor fast 9 Jahren hinzugefügt

  • ID df1e56bd34483527c4442efa366e007f732be86c
  • Vorgänger 5c3d9487
  • Nachfolger 2c49732b

many-to-one

Unterschiede anzeigen:

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