我有一个查询建造与EntityManager
:JPA查询例外
Query q = em
.createQuery("SELECT * FROM :table WHERE username = :username AND password = MD5(:password)")
.setParameter("table", User.class.getName())
.setParameter("username", txtLogin.getText())
.setParameter("password", passPassword.getPassword())
;
User user = (User) q.getSingleResult();
,但我得到一个异常:在线程 “AWT-EventQueue的 - 0” java.lang.IllegalArgumentException异常
例外:在EntityManager中创建 查询时发生异常 :
异常 说明:语法错误解析 查询[S ELECT * FROM:表WHHER username =:username AND password = MD5(:password)],line 1,column 7: unexpected token [*]。
如何解决?
在查询中不可能使用*
吗?
这JPA规范的一部分,说:“选择”是可选的?特别是,在JPA2规范的第4.2.1节中,我们有“select_statement :: = select_clause from_clause [where_clause] [groupby_clause] [having_clause] [orderby_clause]”“select_clause”根本不是可选的 – DataNucleus 2010-10-06 10:17:41
我不知道规格。但是,如果你想要一个'select * from',那么你不需要输入SELECT。你可以写FROM。也许是支持这个的hibernate,而不是专门的jpa。 – 2010-10-06 10:26:57