使用 COUNT (DISTINCT obj) 生成 JPA 本机查询
请帮助我在 OpenJPA 1.2.x 上进行 JPQL 查询 这是我的查询文本:
从事件中选择计数(不同事件) evt WHERE (evt.beginDate >= :startOfPeriod 和 evt.beginDate <= :endOfPeriod) 按 evt.beginDate 排序 上升
在运行时我收到一个错误:
org.apache.openjpa.persistence.ArgumentException: DB2 SQL 错误:SQLCODE=-119, SQLSTATE=42803,SQLERRMC=BEGIN_DATE, 驱动程序=3.59.81 {prepstmnt 1520523937 选择计数(不同的 t0.ID), t0.BEGIN_DATE 来自公司.事件 t0 WHERE (t0.BEGIN_DATE >= ? AND t0.BEGIN_DATE <= ?) 优化 1 行 [参数=(时间戳)2010-12-14 00:00:00.0,(时间戳)2010-12-14 23:59:59.999]} [代码=-119, 状态=42803]
为什么 JPA 在 select 子句中打印字段 t0.BEGIN_DATE? 为什么 JPA 会错过本机 SQL 中的 ORDER BY 子句? 例如,此查询(在 select 子句中没有 t0.BEGIN_DATE)是有效的:
SELECT COUNT(DISTINCT t0.ID)
FROM CALENDAR.EVENT t0
WHERE (t0.BEGIN_DATE >= null AND t0.BEGIN_DATE <= null)
我已设置 null 只是为了成功执行 SQL 查询
这是某种错误吗?
please help me with JPQL Query on OpenJPA 1.2.x
Here is the text of my query:
select count (distinct evt) from Event
evt WHERE (evt.beginDate >=
:startOfPeriod and evt.beginDate <=
:endOfPeriod) ORDER BY evt.beginDate
asc
At runtime I get an error:
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]
Why does JPA prints field t0.BEGIN_DATE in select clause?
Why did JPA miss ORDER BY clause in native SQL?
For example, this query (without t0.BEGIN_DATE in select clause) is valid:
SELECT COUNT(DISTINCT t0.ID)
FROM CALENDAR.EVENT t0
WHERE (t0.BEGIN_DATE >= null AND t0.BEGIN_DATE <= null)
I've set null just for successful SQL query execution
Is it a some kind of a bug?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
哦,伙计...只需删除“ORDER BY evt.beginDate asc”即可。
太蠢了。我确实数过,我不需要按...
问题已经被我自己解决了。抱歉打扰了。
Oh, man... just delete "ORDER BY evt.beginDate asc".
So stupid. I do count, I don't need order by...
Problem has been solved by myself. Excuse me for disturbing.