commit 31ca3a7021160b69d21dc147bbaac1a119702f99
Author: Christian Ehringfeld <c.ehringfeld@t-online.de>
Date:   Fri Jan 1 15:11:16 2016 +0100

    bugfix for one-to-many attributes and testcases updated

diff --git a/src/entitymanager.cpp b/src/entitymanager.cpp
index d9754a7..6c50335 100644
--- a/src/entitymanager.cpp
+++ b/src/entitymanager.cpp
@@ -465,8 +465,8 @@ void EntityManager::oneToMany(const QSharedPointer<Entity> &entity,
     if (entity.data() && entity->getId() > -1) {
         auto e = QSharedPointer<Entity>(EntityInstanceFactory::createInstance(attr));
         if (e) {
-            QSqlQuery q = this->schema->getQueryBuilder()->oneToMany(attr->getTableName(),
-                          attr->getColumnName(), entity->getId());
+            QSqlQuery q = this->schema->getQueryBuilder()->oneToMany(attr->getRelatedTable(),
+                          attr->getRelatedColumnName(), entity->getId());
             auto listMap = this->convertQueryResult(q);
             auto entities = this->convert(listMap, EntityHelper::getClassname(e.data()),
                                           refresh);
diff --git a/tests/em/tst_em.cpp b/tests/em/tst_em.cpp
index 88f3b64..16a1f25 100644
--- a/tests/em/tst_em.cpp
+++ b/tests/em/tst_em.cpp
@@ -283,13 +283,20 @@ void EmTest::testRelations() {
     QSharedPointer<Person> p3 = QSharedPointer<Person>(new Person("Fenja", "Sey.",
                                 Person::Gender::FEMALE, "fenja.jpeg", "", "Lotta", QDate(1990, 11, 11)));
     QSharedPointer<Group> g = QSharedPointer<Group>(new Group("TestGroup"));
+    QSharedPointer<Group> g2 = QSharedPointer<Group>(new Group("TestGroup2"));
     g->setLeader(p1);
+    g2->setLeader(p2);
     g->setPersons({p1});
     auto gEnt = g.objectCast<Entity>();
     auto pEnt = p3.objectCast<Entity>();
+    auto pEnt1 = p1.objectCast<Entity>();
     QVERIFY(this->e->save(gEnt));
+    auto maintainedGroups = p1->getMaintainedGroups();
+    maintainedGroups.append(g2);
+    p1->setMaintainedGroups(maintainedGroups);
+    this->e->merge(pEnt1, true, false, true);
     QVERIFY(p1->getId() > -1);
-    QVERIFY(p1->getMaintainedGroups().size() > 0);
+    QCOMPARE(p1->getMaintainedGroups().size(), 2);
     QVERIFY(p1->getGroups().size() > 0);
     g->addPerson(p2);
     g->setName("TestGroupExtended");
diff --git a/tests/em/tst_querybuilder.cpp b/tests/em/tst_querybuilder.cpp
index 4ba57d9..ca04319 100644
--- a/tests/em/tst_querybuilder.cpp
+++ b/tests/em/tst_querybuilder.cpp
@@ -25,7 +25,10 @@ void QuerybuilderTest::initTestCase() {
                                 Person::Gender::FEMALE, "kristina.jpeg", "", "", QDate(1996, 5, 17)));
     QSharedPointer<Group> g = QSharedPointer<Group>(new Group("Group Psy"));
     QSharedPointer<Group> g2 = QSharedPointer<Group>(new Group("Group Health"));
+    QSharedPointer<Group> g3 = QSharedPointer<Group>(new Group("Group ABC"));
     g->setLeader(p1);
+    g3->setLeader(p3);
+    g3->setPersons({p3});
     g->setPersons({p1, p2, p4});
     g2->setLeader(p3);
     g2->setPersons({p3});
@@ -35,6 +38,7 @@ void QuerybuilderTest::initTestCase() {
     wg->addWorker(p3);
     auto gEnt = g.objectCast<Entity>();
     auto g2Ent = g2.objectCast<Entity>();
+    auto g3Ent = g3.objectCast<Entity>();
     auto wgEnt = wg.objectCast<Entity>();
     auto p5Ent = p5.objectCast<Entity>();
     auto p6Ent = p6.objectCast<Entity>();
@@ -44,6 +48,7 @@ void QuerybuilderTest::initTestCase() {
         QVERIFY(this->e->save(wgEnt));
         QVERIFY(this->e->save(g2Ent));
         QVERIFY(this->e->save(p6Ent));
+        QVERIFY(this->e->save(g3Ent));
     } catch(QString s) {
         qWarning() << s;
     }
@@ -70,6 +75,14 @@ void QuerybuilderTest::testFindByAttributes() {
     QSharedPointer<Employee> p = e->findEntityByAttributes<Employee>(attributes, true);
     QVERIFY(p);
     QCOMPARE(p->getNickName(), QString("Lotta"));
+    QCOMPARE(p->getGroups().size(), 2);
+    attributes.clear();
+    attributes["name"] = "Group ABC";
+    QCOMPARE(p->getMaintainedGroups().size(), 2);
+    QSharedPointer<Group> g = e->findEntityByAttributes<Group>(attributes, true);
+    QVERIFY(g->getLeader());
+    QCOMPARE(g->getLeader()->getFirstName(), QString("Fenja"));
+    QCOMPARE(g->getLeader()->getFamilyName(), QString("Sey."));
 }
 
 void QuerybuilderTest::testFindByAttributesManyToOneRelation() {
