gpt4 book ai didi

java - Hibernate命名查询问题

转载 作者:行者123 更新时间:2023-12-01 09:55:06 26 4
gpt4 key购买 nike

我有以下姓名查询

@NamedQuery(name="ScInstantTrack.getCustomerDetails", 
query="select b.cardDetail.mstCustomer.customerId, last_day(b.endDate), " +
"LISTAGG(b.txnId,'|') WITHIN GROUP (ORDER BY b.endDate), " +
"count(b.txnId), sum(b.amount), sum(b.balanceAmt), sum(b.redemptionAmt) " +
"from ScInstantTrack b " +
"where b.cardNo = b.cardDetail.cardBarcode " +
"AND b.cardDetail.mstCustomer.customerId = :customerId " +
"and b.startDate <= trunc(:todayDate) " +
"and b.endDate >= trunc(:todayDate) " +
"and b.cardDetail.mstStatus.statusId = 3003 group by b.cardDetail.mstCustomer.customerId, last_day(b.endDate)")

当我执行此查询时出现以下错误:

unexpected token: WITHIN

我正在使用 Oracle 数据库。

为什么我会收到此错误?如何解决这个问题?

最佳答案

尝试使用@NamedNativeQuery而不是@NamedQuery

另请检查this explanation它们之间的差异。

基本上,您使用的是 Oracle DB 中独有的表达式。换句话说 - 您想要执行 native 查询(Oracle DB 语言 native 查询)。命名查询使用 Java Persistence Query Language (即 HQL)。

关于java - Hibernate命名查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37297716/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com