我有一个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<之间添加空格!

09-25 16:07