JPA - 必须为范围变量声明提供标识变量

时间:2014-08-05 12:22:39

标签: java jpa

我想知道为什么我得到"必须为范围变量声明提供一个识别变量。"我没有别名的错误。
当我在表中添加别名时,似乎我解决了问题。

有问题的代码:

List result = entityManager.createQuery( "from Rental", Rental.class ).getResultList();

解决方案:

List result = entityManager.createQuery( "from Rental r", Rental.class ).getResultList();

1 个答案:

答案 0 :(得分:10)

您应该区分HQL(Hibernate查询语言)和JPQL(Java持久性查询语言)。只要您的提供商是Hibernate,您就会发现没有区别,但您必须记住,正确的JPQL查询包含SELECT个关键字。 Here's对这种差异的解释。

回到你的问题 - 为每个实体表定义别名是JPQL