我想从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”是实体而不是表格。
答案 0 :(得分:3)
您需要从查询中删除SELECT *
部分:
List<Entry> res = entityManager.createQuery("from Person", Entry.class).getResultList();
答案 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();