Revision 373a84e2
Von Christian Ehringfeld vor etwa 8 Jahren hinzugefügt
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
wip