commit 9e44a59b76dd37d8bbc440c9c554005d52fa1a6b
Author: Christian Ehringfeld <c.ehringfeld@t-online.de>
Date:   Fri Aug 7 16:11:03 2015 +0200

    fix

diff --git a/samples/example/main.cpp b/samples/example/main.cpp
index 2d19f21..d89ea62 100644
--- a/samples/example/main.cpp
+++ b/samples/example/main.cpp
@@ -114,6 +114,11 @@ int main(int argc, char *argv[]) {
     }
     qDebug() << "-----------------------------";
 
+    QHash<QString,QVariant> attributes;
+    attributes["name"]=QString("05c");
+    e->findEntityByAttributes<Pupil>(attributes);
+
+
     qDebug() << "Duration:" << t.elapsed();
     return 0;
 }
diff --git a/src/entitymanager.h b/src/entitymanager.h
index e619433..f644614 100644
--- a/src/entitymanager.h
+++ b/src/entitymanager.h
@@ -133,11 +133,11 @@ class EntityManager : public QObject {
     template<class T> QList<QSharedPointer<T>> findAllEntitiesByAttributes(
             const QHash<QString, QVariant> &attributes =
     QHash<QString, QString>(), quint64 limit = 0, quint64 offset = 0) {
-        QSharedPointer<T> e = QSharedPointer<T>
+        QSharedPointer<Entity> e = QSharedPointer<Entity>
                               (EntityInstanceFactory::createInstance<T *>());
         if (e) {
-            Query query = Query(QStringList(e->getTablename()),
-                                this->schema->getQueryBuilder()->where(attributes));
+            Query query = Query(QStringList(e->getTablename()));
+            query.appendWhere(this->schema->getQueryBuilder()->where(attributes));
             query.setLimit(limit);
             query.setOffset(offset);
             QSqlQuery q = this->queryInterpreter->build(query);
@@ -145,7 +145,7 @@ class EntityManager : public QObject {
             auto list = this->convert(results, EntityHelper::getClassname(e.data()));
             return this->convertList<T>(list);
         }
-        return QList<QSharedPointer<Entity>>();
+        return QList<QSharedPointer<T>>();
     }
 
     template<class T> QList<QSharedPointer<T>> findEntitiesBySql(
diff --git a/src/query.h b/src/query.h
index 27391e4..f1b4292 100644
--- a/src/query.h
+++ b/src/query.h
@@ -30,7 +30,7 @@ class Query {
   public:
     Query();
     ~Query();
-    Query(QStringList from, QList<Expression> where,
+    Query(QStringList from, QList<Expression> where = QList<Expression>(),
           QList<Join> joins = QList<Join>(),
           QHash<QString, QVariant> params = QHash<QString, QVariant>(), quint64 limit = 0,
           quint64 offset = 0,
diff --git a/src/queryinterpreter.cpp b/src/queryinterpreter.cpp
index 7c6f84b..d7c9920 100644
--- a/src/queryinterpreter.cpp
+++ b/src/queryinterpreter.cpp
@@ -141,9 +141,9 @@ QString QueryInterpreter::buildJoin(const QList<Join> &joins) const {
                 expression = this->builder->getSchema()->quoteTableName(expression);
             } else if (count == 1) {
                 QStringList list = expression.split("=");
-                expression = this->builder->getSchema()->quoteTableName(list.at(
+                expression = this->builder->getSchema()->quoteColumnName(list.at(
                                  0).trimmed()) + " = ";
-                expression += this->builder->getSchema()->quoteTableName(list.at(1).trimmed());
+                expression += this->builder->getSchema()->quoteColumnName(list.at(1).trimmed());
             }
             sqlJoin += " ON " + expression;
         }
