JPA使用COUNT(DISTINCT obj)生成本地查询

3

请帮我处理OpenJPA 1.2.x上的JPQL查询。以下是我的查询文本:

select count (distinct evt) from Event evt WHERE (evt.beginDate >= :startOfPeriod and evt.beginDate <= :endOfPeriod) ORDER BY evt.beginDate asc

在运行时,我遇到了一个错误:

org.apache.openjpa.persistence.ArgumentException: DB2 SQL Error: SQLCODE=-119, SQLSTATE=42803 , SQLERRMC=BEGIN_DATE, DRIVER=3.59.81 {prepstmnt 1520523937 SELECT COUNT(DISTINCT t0.ID), t0.BEGIN_DATE FROM COMPANY.EVENT t0 WHERE (t0.BEGIN_DATE >= ? AND t0.BEGIN_DATE <= ?) optimize for 1 row [params=(Timestamp) 2010-12-14 00:00:00.0, (Timestamp) 2010-12-14 23:59:59.999]} [code=-119, state=42803]

为什么JPA会在SELECT子句中打印字段t0.BEGIN_DATE? 为什么JPA在原生SQL中忽略了ORDER BY子句? 例如,下面这个没有t0.BEGIN_DATE在SELECT子句中的查询是有效的:

SELECT COUNT(DISTINCT t0.ID) 
    FROM CALENDAR.EVENT t0
    WHERE (t0.BEGIN_DATE >= null AND t0.BEGIN_DATE <= null)

我只是为了成功执行SQL查询而设置了null

这是某种错误吗?

1个回答

3

哦,天啊...只需删除“ORDER BY evt.beginDate asc”。 太蠢了。我在计数,不需要排序... 问题已经被我解决了。打扰你了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接