Revision 90dfeb49
Von Christian Ehringfeld vor mehr als 9 Jahren hinzugefügt
| src/entityinstancefactory.cpp | ||
|---|---|---|
|
QMetaProperty prop = metaprops.value(iterator.key());
|
||
|
if (prop.isWritable()) {
|
||
|
if (prop.isEnumType()) {
|
||
|
prop.write(e, prop.enumerator().key(iterator.value().toInt()));
|
||
|
prop.write(e, prop.enumerator().valueToKey(iterator.value().toInt()));
|
||
|
} else {
|
||
|
prop.write(e, iterator.value());
|
||
|
}
|
||
| tests/em/tst_querybuilder.cpp | ||
|---|---|---|
|
CuteEntityManager::EntityInstanceFactory::registerClass<Person>();
|
||
|
CuteEntityManager::EntityInstanceFactory::registerClass<Employee>();
|
||
|
CuteEntityManager::EntityInstanceFactory::registerClass<WorkerGroup>();
|
||
|
this->e = new CuteEntityManager::EntityManager("QSQLITE", ":memory:", "", "", "", "",
|
||
|
this->e = new CuteEntityManager::EntityManager("QSQLITE",
|
||
|
QDir::currentPath() + "/db.sqlite", "", "", "", "",
|
||
|
true, "foreign_keys = ON", false);
|
||
|
QStringList inits = QStringList() << "Person" << "Group" << "Employee" << "WorkerGroup";
|
||
|
QVERIFY2(this->e->startup("queryBuilderTest", inits), "Failure");
|
||
| ... | ... | |
|
QCOMPARE(groupList.at(0)->getPersons().size(), 3);
|
||
|
}
|
||
|
|
||
|
void QuerybuilderTest::testEnum() {
|
||
|
auto qb = e->getQueryBuilder();
|
||
|
Query q = Query();
|
||
|
QVariant var;
|
||
|
var.setValue<Person::Gender>(Person::Gender::FEMALE);
|
||
|
q.appendWhere(q.equal(qb, "gender", var.toInt()));
|
||
|
QList<QSharedPointer<Person>> females = e->find<Person>(q, false);
|
||
|
QCOMPARE(females.size(), 4);
|
||
|
QCOMPARE(females.first()->getGender(), Person::Gender::FEMALE);
|
||
|
}
|
||
|
|
||
|
void QuerybuilderTest::testRefresh() {
|
||
|
e->clearCache();
|
||
|
auto persons = e->findAll<Person>(false);
|
||
| tests/em/tst_querybuilder.h | ||
|---|---|---|
|
void testQueryBuilderSingleAttributeOr();
|
||
|
void testQueryBuilderManyToOneRelationAttribute();
|
||
|
void testQueryBuilderManyToManyRelationAttribute();
|
||
|
void testEnum();
|
||
|
void testRefresh();
|
||
|
|
||
|
private:
|
||
| tests/models.h | ||
|---|---|---|
|
getMaintainedGroups WRITE setMaintainedGroups)
|
||
|
|
||
|
public:
|
||
|
enum class Gender {MALE, FEMALE, UNKNOWNGENDER};
|
||
|
enum class Gender {MALE=109, FEMALE=102, UNKNOWNGENDER=0};
|
||
|
#if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0)
|
||
|
Q_ENUM(Gender)
|
||
|
#else
|
||
Auch abrufbar als: Unified diff
enum fix