【发布时间】:2022-01-23 16:53:52
【问题描述】:
我有一个运行良好的以下 mysql 查询:
*编辑:路径仅用于说明目的...我不想复制我的包...
select COUNT(IF(amount > 0, amount, 0)) as creditCount,
COUNT(IF(amount < 0, amount, 0)) as debitCount,
SUM(IF(amount > 0, amount, 0)) as credit,
SUM(IF(amount < 0, amount, 0)) as debit,
SUM(amount) as balance,
cp.surname, cp.id, pcp.number from prepaid_card_transaction_pojo pctp
join prepaid_card_pojo pcp on pctp.account = pcp.id
join customer_pojo cp on pcp.id = cp.prepaid_card
where pcp.number = '1000765352' AND pctp.client = UUID_TO_BIN('fb9dbcac-cd03-46ad-94b0-2709b0b0e2a8') AND booking_time > '2020-12-01 00:00:00' group by cp.id;
我想转给jpql:
@Query("select new path...Bean(" + //
"COUNT(IF(pctp.amount > 0, pctp.amount, 0))," + //
"COUNT(IF(pctp.amount < 0, pctp.amount, 0)), " + //
"SUM(IF(pctp.amount > 0, pctp.amount, 0)), " + //
"SUM(IF(pctp.amount < 0, pctp.amount, 0)), " + //
"SUM(pctp.amount), cp) " + //
"FROM PrepaidCardTransactionPojo pctp " + //
"JOIN PrepaidCardPojo pcp ON pctp.account = pcp.id " + //
"JOIN CustomerPojo cp ON pcp.id = cp.prepaid_card " + //
"WHERE pcp.number =:voucherNumber AND pctp.client =:client AND booking_time >= :from AND booking_time < :to GROUP BY :customer")
List<Bean> loadGroupedCustomerPrepaidTransactions(@Param("client") ClientReadable client, @Param("customer") CustomerReadable customer, @Param("voucherNumber") String voucherNumber, @Param("from") Date from, @Param("to") Date to);
我收到以下错误:
...QuerySyntaxException: expecting CLOSE, found '(' near...
【问题讨论】:
-
你认为这是正确的新路径吗...Bean(........
-
@RaushanKumar 我认为他写 Bean 是为了简单起见。
标签: java spring spring-data jpql