Java JPA-必须为范围变量声明提供标识变量
我想知道为什么我得到“必须为范围变量声明提供标识变量”。当我没有别名时出错。Java JPA-必须为范围变量声明提供标识变量,java,jpa,Java,Jpa,我想知道为什么我得到“必须为范围变量声明提供标识变量”。当我没有别名时出错。 当我将alias添加到表中时,问题似乎解决了。 有问题的代码: List result = entityManager.createQuery( "from Rental", Rental.class ).getResultList(); 解决方案: List result = entityManager.createQuery( "from Rental r", Rental.class ).getResultLi
当我将alias添加到表中时,问题似乎解决了。
有问题的代码:
List result = entityManager.createQuery( "from Rental", Rental.class ).getResultList();
解决方案:
List result = entityManager.createQuery( "from Rental r", Rental.class ).getResultList();
您应该区分
HQL
(Hibernate查询语言)和JPQL
(Java持久性查询语言)。只要您的提供者是Hibernate,您就看不到任何区别,但您必须记住,正确的JPQL
查询由SELECT
关键字组成。对这种差异的解释
回到您的问题-为每个实体表定义别名是JPQL
要求