Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision a873a3ba

Von Christian Ehringfeld vor etwa 8 Jahren hinzugefügt

  • ID a873a3ba62ec8906c8621fdc4d3c0a345427054a
  • Vorgänger fd67a7a7
  • Nachfolger b8bb1763

closes #614

Unterschiede anzeigen:

src/entitymanager.cpp
return this->schema->getQueryBuilder();
}
void EntityManager::clearCache() {
this->cache.clear();
}
bool EntityManager::saveObject(QSharedPointer<Entity> &entity,
QList<Entity *> &mergedObjects, const bool persistRelations,
const bool ignoreHasChanged, const bool validate,
......
QString className = attr->getRelatedClass()->className();
QSharedPointer<Entity> ptr = QSharedPointer<Entity>();
if (!(this->cache.contains(convertedId, className)
&& (ptr = this->cache.get(convertedId, className)))) {
&& (ptr = this->cache.get(convertedId, className)))) {
ptr = this->findById(convertedId, className);
}
EntityHelper::setProperty(entity, ptr, attr->getMetaProperty());
......
auto e = QSharedPointer<Entity>(EntityInstanceFactory::createInstance(attr));
if (e) {
Query query = this->schema->getQueryBuilder()->oneToMany(
attr->getRelatedTable(),
attr->getRelatedColumnName(), entity->getId());
attr->getRelatedTable(),
attr->getRelatedColumnName(), entity->getId());
QSqlQuery q = this->queryInterpreter->build(query);
auto listMap = this->convertQueryResult(q);
auto entities = this->convert(listMap, EntityHelper::getClassname(e.data()));
......
for (int var = 0; var < listMap.size(); ++var) {
auto id = listMap.at(var).value(attr->getRelatedColumnName());
if (!(this->cache.contains(id.toLongLong(), secClassName) &&
(e = this->cache.get(id.toLongLong(), secClassName)))) {
(e = this->cache.get(id.toLongLong(), secClassName)))) {
e = this->findById(id.toLongLong(), secClassName);
}
if (e) {
......
}
}
QList<QSharedPointer<Entity>> EntityManager::findEntityByAttributes(const QSharedPointer<Entity> &entity,
QList<QSharedPointer<Entity>> EntityManager::findEntityByAttributes(
const QSharedPointer<Entity> &entity,
bool ignoreID, const bool resolveRelations) {
auto maps = this->findAllByAttributes(entity, ignoreID);
return this->convert(maps, EntityHelper::getClassname(entity.data()),resolveRelations);
return this->convert(maps, EntityHelper::getClassname(entity.data()), resolveRelations);
}
QHash<QString, QVariant> EntityManager::findByPk(qint64 id,
......
const char *classname, const bool resolveRelations) {
auto list = QList<QSharedPointer<Entity>>();
for (int var = 0; var < maps.size(); ++var) {
auto ptr = this->convert(maps.at(var), classname,resolveRelations);
auto ptr = this->convert(maps.at(var), classname, resolveRelations);
list.append(ptr);
}
return list;

Auch abrufbar als: Unified diff