Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision f5087482

Von Christian Ehringfeld vor fast 9 Jahren hinzugefügt

  • ID f50874826e742fd68c584d9e437b98cce5708a38
  • Vorgänger 696666eb
  • Nachfolger 6d91d381

some sql and inheritance stuff,debugging entityinstancefactory

Unterschiede anzeigen:

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