HQL Query在Hibernate MySQL中失败

时间:2013-12-02 07:42:41

标签: mysql hibernate hql

我想从user表中恢复所有行。

String queryS = "select u from user u";
        System.out.println("entityManager: "+(entityManager == null));
        Query query = entityManager.createQuery(queryS);
//staff

抛出异常的行是Query query = entityManager.createQuery(queryS);

我不知道为什么甚至持久文件都没问题并且表存在

堆栈是:

10:36:06.693 [AWT-EventQueue-0] DEBUG org.hibernate.hql.ast.ErrorCounter - throwQueryException() : no errors
10:36:06.693 [AWT-EventQueue-0] DEBUG o.h.hql.antlr.HqlSqlBaseWalker - select << begin [level=1, statement=select]

2 个答案:

答案 0 :(得分:0)

您必须将query中的表名放在persistence文件中,而不是数据库中。

答案 1 :(得分:0)

如果:

String queryS = "select u from user u"

在表名上引用你不能使用createQuery方法而是createNativeQuery

如果要使用createQuery,则必须在查询中使用实体/类映射到用户表

汇总:

案例1(使用createNativeQuery)

String queryS = "select u from user u";
Query query = entityManager.createNativeQuery(queryS);

案例2(使用createQuery)

String queryS = "select u from " + User.class.getName() + " u";
Query query = entityManager.createNativeQuery(queryS);