Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 373a84e2

Von Christian Ehringfeld vor etwa 8 Jahren hinzugefügt

wip

Unterschiede anzeigen:

src/entitymanager.cpp
return schema;
}
void EntityManager::refresh(QSharedPointer<Entity> &entity) {
void EntityManager::refresh(QSharedPointer<Entity> &entity, const bool resolveRelations) {
if(entity) {
auto map = this->findByPk(entity->getId(), entity);
this->convert(map, entity, true);
this->convert(map, entity, true, resolveRelations);
}
}
......
}
QSharedPointer<Entity> EntityManager::findById(const qint64 &id,
const QString &classname) {
const QString &classname, const bool refresh) {
QSharedPointer<Entity> e = QSharedPointer<Entity>
(EntityInstanceFactory::createInstance(classname));
return this->findById(id, e);
return this->findById(id, e, refresh);
}
void EntityManager::manyToOne(const QSharedPointer<Entity> &entity,
......
QSharedPointer<Entity> ptr = QSharedPointer<Entity>();
if (refresh || !(this->cache.contains(convertedId, className)
&& (ptr = this->cache.get(convertedId, className)))) {
ptr = this->findById(convertedId, className);
ptr = this->findById(convertedId, className, refresh);
}
EntityHelper::setProperty(entity, ptr, attr->getMetaProperty());
}
......
if (entity.data() && entity->getId() > -1) {
auto e = QSharedPointer<Entity>(EntityInstanceFactory::createInstance(attr));
if (e) {
QSqlQuery q = this->schema->getQueryBuilder()->oneToMany(attr->getRelatedTable(),
attr->getRelatedColumnName(), entity->getId());
Query query = this->schema->getQueryBuilder()->oneToMany(
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()),
refresh);
......
} else {
auto e = QSharedPointer<Entity>(EntityInstanceFactory::createInstance(attr));
if (e) {
QSqlQuery q = this->schema->getQueryBuilder()->oneToMany(
Query query = this->schema->getQueryBuilder()->oneToMany(
e->getTablename(),
this->schema->getQueryBuilder()->generateColumnNameID(
attr->getRelation().getMappedBy()),
entity->getProperty(entity->getPrimaryKey()).toLongLong(), 1);
QSqlQuery q = this->queryInterpreter->build(query);
auto listMap = this->convertQueryResult(q);
auto entities = this->convert(listMap, EntityHelper::getClassname(e.data()),
refresh);
......
const QSharedPointer<Entity>
&entity,
bool ignoreID) {
QSqlQuery q = this->schema->getQueryBuilder()->findByAttributes(
Query query = this->schema->getQueryBuilder()->findByAttributes(
entity, ignoreID);
QSqlQuery q = this->queryInterpreter->build(query);
return this->convertQueryResult(q);
}
QList<QHash <QString, QVariant>> EntityManager::findAllByAttributes(
const QHash<QString, QVariant> &m, const QString &tblname, bool ignoreID) {
QSqlQuery q = this->schema->getQueryBuilder()->findByAttributes(m,
Query query = this->schema->getQueryBuilder()->findByAttributes(m,
tblname, ignoreID);
QSqlQuery q = this->queryInterpreter->build(query);
return this->convertQueryResult(q);
}

Auch abrufbar als: Unified diff