spring + jpa + hibernate,列出表中的所有行

时间:2015-08-14 10:05:26

标签: java spring hibernate jpa

我想从db中的表Person中读取所有行的值。 我认为配置persistence.xml和Entry.java(实体)是正确的。如果需要,我会发布它们。 无论如何我的代码不起作用:

@Override
public List<Entry> list() {
    List<Entry> res = entityManager.createQuery("SELECT * FROM Person", Entry.class).getResultList();

    return res;
}

日志说:

org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: * near line 1, column 8 [SELECT * FROM Person]

任何想法?

确定。没有SELECT *日志告诉我:

org.hibernate.hql.internal.ast.QuerySyntaxException: Person is not mapped [FROM Person]

解决。解决方案是:

        List<Entry> res = entityManager.createQuery("FROM Entry").getResultList();

“Entry”是实体而不是表格。

3 个答案:

答案 0 :(得分:3)

您需要从查询中删除SELECT *部分:

List<Entry> res = entityManager.createQuery("from Person", Entry.class).getResultList();

JBoss JPA/Hibernate Tutorial

答案 1 :(得分:0)

您必须删除select子句:

List<Entry> res = entityManager.createQuery("FROM Person", Entry.class).getResultList();

答案 2 :(得分:0)

尝试不选择*

List<Entry> res = entityManager.createQuery("from Entry", Entry.class).getResultList();

或使用别名:

List<Entry> res = entityManager.createQuery("select e from Entry e", Entry.class).getResultList();