Revision f5087482
Von Christian Ehringfeld vor fast 9 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