我有一个Java EE应用程序,该应用程序在名为download的实体中有一个名为Query的应用程序。
命名查询为:
@NamedQuery(name="Users.DownloadCount",
query="SELECT u.fullName, count(u.downloads) FROM WebUser u "
+ "JOIN u.downloads ud WHERE ud.downloadTime "
+ "> :startDate AND ud.downloadTime < :endDate")
我尝试使用我的方法之一执行以下查询:
List<Object[]> downloads = new ArrayList();
if(userName==null){
downloads = manager.createNamedQuery("Users.DownloadCount").setParameter("startDate", sDate,TemporalType.DATE)
.setParameter("endDate", eDate,TemporalType.DATE).getResultList();
日期变量sDate和eDate为:
Date sDate = format.parse(startDate);
Date eDate = format.parse(endDate);
但是由于某种原因,我似乎得到了:
java.sql.SQLSyntaxErrorException: ORA-00936: missing expression
例外。
我已将查询从实体类中拉出,并完成了一个普通的entitymanager查询调用,但仍然遇到相同的异常。
最佳答案
在ud.downloadTime
和> :s
之间以及ud.downloadTime
和<
之间添加空格!