再会,
我有这个奇怪的问题:
以下语句有效
查询 q = em.createQuery("SELECT m from AccountClass as m");
而下面的声明没有
查询 q = em.createQuery("SELECT m from AccountClass");
我正在尝试编写一个允许我使用 where 子句的语句;
谢谢您阅读此篇。
em.createQuery
期望 JPQL 查询而不是 SQL 查询作为参数传递。
SELECT m FROM AccountClass
不是有效的 JPQL 查询,其中 asSELECT m FROM AccountClass m
有效。如果您想进一步了解 JPQL,可以从有关 JPQL 的Java EE 教程章节开始。
在这种情况下有效的原因SELECT m FROM AccountClass as m
是因为AS
是一个可选关键字。如果您希望发出 WHERE 子句,这样做很简单 - SELECT m FROM AccountClass m WHERE m.x= :param1
, wherex
是AccountClass
类的一个属性,并且param1
是一个命名参数,其值必须使用该Query.setParameter
方法设置。