使用JPQL,因为下面的查询引用了多个实体,所以呈现的SQL包含MyTableA和MyTableB的包名。在我的例子中,我的Java包名以“is”开头,因为我住在冰岛(Island)。我得到一个异常:“org.hibernate.hql.internal.ast.ErrorTracker:line 3:6:unexpected token:is”。看起来好像Hibernate的HQLParser/HQLLexer错误地失败了,出现了一个保留字异常。有人有类似的经验吗?这迫使我使用原生查询而不是JPQL,并阻止我使用QueryDsl等工具。谢谢你的任何建议。
"""
SELECT a FROM MyTableA a JOIN MyTableB b on a.id = b.id WHERE a.id = :id
""", MyTest.class)
.setParameter(“id”, id)
.getResultList(); ```
字符串
1条答案
按热度按时间nvbavucw1#
我认为你不需要在JQPL查询中指定实体类的全限定名。尽量使用简单的类名而不是全限定名。
请参阅软件包名称中的
in
关键字的类似问题:Spring JPA - "in" word in package name of Entity Class - Results in JPQL Error