Revision f5087482
Von Christian Ehringfeld vor mehr als 10 Jahren hinzugefügt
| src/entitymanager.h | ||
|---|---|---|
|
|
||
|
protected:
|
||
|
void init();
|
||
|
QList<QHash<QString, QVariant> > findAll(QString tblname);
|
||
|
QList<QHash<QString, QVariant> > findAll(const QSharedPointer<Entity> &e);
|
||
|
void resolveRelations(const QSharedPointer<Entity> &entity,
|
||
|
const QHash<QString, QVariant> &map, const bool refresh = false);
|
||
|
QHash<QString, QVariant> findByPk(qint64 id, QString tblname);
|
||
|
QHash<QString, QVariant> findByPk(const QSharedPointer<Entity> &e);
|
||
|
QSharedPointer<Entity> convert(const QHash<QString, QVariant> &map,
|
||
|
const char *classname, const bool refresh = false);
|
||
|
QList<QSharedPointer<Entity>> convert(QList<QHash<QString, QVariant> > maps,
|
||
| ... | ... | |
|
QHash<QString, QVariant> &m,
|
||
|
const QString &tblname,
|
||
|
bool ignoreID = false);
|
||
|
QSharedPointer<Entity> findById(const qint64 &id, Entity *&e,
|
||
|
QSharedPointer<Entity> findById(const qint64 &id, QSharedPointer<Entity> &e,
|
||
|
const bool refresh = false);
|
||
|
void addEntityToListProperty(const QSharedPointer<Entity> &entity,
|
||
|
QSharedPointer<Entity> add, const QMetaProperty &property);
|
||
| ... | ... | |
|
}
|
||
|
|
||
|
template<class T> QList<QSharedPointer<Entity>> findAll() {
|
||
|
Entity *e = EntityInstanceFactory::createInstance<T>();
|
||
|
if (e) {
|
||
|
auto maps = this->findAll(e->getTablename());
|
||
|
const char *className = e->getClassname();
|
||
|
delete e;
|
||
|
QSharedPointer<Entity> ptr = QSharedPointer<Entity>(EntityInstanceFactory::createInstance<T>());
|
||
|
if (!ptr.isNull()) {
|
||
|
auto maps = this->findAll(ptr);
|
||
|
const char *className = ptr.data()->getClassname();
|
||
|
return this->convert(maps, className);
|
||
|
}
|
||
|
return QList<QSharedPointer<Entity>>();
|
||
|
}
|
||
|
|
||
|
template<class T> QSharedPointer<Entity> findById(const qint64 &id) {
|
||
|
Entity *e = EntityInstanceFactory::createInstance<T>();
|
||
|
return this->findById(id, e);
|
||
|
auto e = EntityInstanceFactory::createInstance<T>();
|
||
|
QSharedPointer<Entity> ptr = QSharedPointer<Entity>(e);
|
||
|
return this->findById(id, ptr);
|
||
|
}
|
||
|
|
||
|
template<class T> QSharedPointer<Entity> findEntityByAttributes(
|
||
Auch abrufbar als: Unified diff
some sql and inheritance stuff,debugging entityinstancefactory