我正在嘗試在 Hibernate 中運行此查詢(通過 JPA),但它拋出
引起:java.lang.IllegalArgumentException:org.hibernate.hql.internal.ast.QuerySyntaxException:意外令牌:(靠近第 1 行,第 32 列
有什么方法可以使這項作業或使它變得更好?我不想使用 OR 子句,因為使用它時查詢要慢得多。
SELECT SUM(s) as sum FROM (
SELECT count (ID) AS s
FROM TABLE1 rr
WHERE rr.status = 0
AND (rr.risk = '1' AND rr.rate = '222' )
UNION ALL
SELECT count (ID) AS s
FROM TABLE1 rr
WHERE rr.status = 0
AND (rr.risk = '2' AND rr.open = '222' ))
uj5u.com熱心網友回復:
對于 HQL 查詢,Hibernate ORM 不支持 FROM 子句中的子查詢(您可以在 WHERE 子句中使用它們)。
如果您不能在沒有子查詢的情況下將此查詢重寫為 HQL(例如,出于性能原因),我認為可以在 db 上將其作為本機 SQL 查詢運行:
String sqlQuery = ...;
session.createNativeQuery(sqlQuery).getSingleResult();
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/477900.html
