Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision d27d606d

Von Christian Ehringfeld vor mehr als 8 Jahren hinzugefügt

  • ID d27d606ded8e08d3f6f6d123516252baf5d1eb6d
  • Vorgänger 46d2de48
  • Nachfolger 19082efe

created attribute resolver

Unterschiede anzeigen:

src/entitymanager.cpp
this->db->startTransaction();
auto builder = this->schema->getQueryBuilder();
q = builder->manyToManyInsert(tblName,
builder->generateManyToManyColumnName(entity,r.getPropertyName()),
builder->generateManyToManyColumnName(ptr,r.getMappedBy()));
builder->generateManyToManyColumnName(entity, r.getPropertyName()),
builder->generateManyToManyColumnName(ptr, r.getMappedBy()));
q.bindValue(0, entity->getProperty(entity->getPrimaryKey()));
auto prop = EntityHelper::mappedProperty(r, ptr);
QSharedPointer<Entity> item;
......
QString tblName = builder->generateManyToManyTableName(e, ptr, r);
if (this->schema->getTables().contains(tblName)) {
QSqlQuery q = builder->manyToManyDelete(
tblName, builder->generateManyToManyColumnName(e,r.getPropertyName()),
tblName, builder->generateManyToManyColumnName(e, r.getPropertyName()),
e->getProperty(e->getPrimaryKey()).toLongLong());
if (this->db->exec(q)) {
bool refresh = r.getCascadeType().contains(CascadeType::REFRESH)
......
* @todo diff and remove entity from relational object when association is deleted
*/
q = builder->manyToManyDelete(
tblName, builder->generateManyToManyColumnName(entity,r.getPropertyName()),
tblName, builder->generateManyToManyColumnName(entity, r.getPropertyName()),
entity->getProperty(entity->getPrimaryKey()).toLongLong());
ok = this->db->exec(q);
} else {
......
relation);
if (this->schema->getTables().contains(tblName)) {
QSqlQuery q = builder->manyToMany(tblName,
builder->generateManyToManyColumnName(entity,relation.getPropertyName()),
builder->generateManyToManyColumnName(entity, relation.getPropertyName()),
entity->getProperty(entity->getPrimaryKey()).toLongLong());
auto listMap = this->convertQueryResult(q);
auto secClassName = EntityHelper::getClassName(secEntityPtr.data());
QSharedPointer<Entity> e;
for (int var = 0; var < listMap.size(); ++var) {
auto id = listMap.at(var).value(builder->generateManyToManyColumnName(secEntityPtr,relation.getMappedBy()));
auto id = listMap.at(var).value(builder->generateManyToManyColumnName(secEntityPtr,
relation.getMappedBy()));
if (refresh || !(this->cache.contains(id.toLongLong(), secClassName) &&
(e = this->cache.get(id.toLongLong(), secClassName)))) {
e = this->findById(id.toLongLong(), secClassName);

Auch abrufbar als: Unified diff