【发布时间】:2015-08-09 04:39:04
【问题描述】:
请举例说明如何在 HQL 中使用CASE WHEN。
我在我的代码中使用了以下查询。
int receiptNumber = 100;
String hql = "SELECT b FROM OOPExtract as b "
+"WHERE "
+" b.tranStatId =" +receiptNumber+ " AND "
+" b.orderType IN ('EMERGENCY', 'PLENARY', 'PETITION','EXTENSION','MOTION') AND "
+" CASE WHEN b.orderType == 'MOTION' " `enter code here`
+ "THEN "
+" b.status = 'MOTION_SIGNED' "
+" ELSE "
+" b.status LIKE '%%' "
+" END "
+" ORDER BY b.oopExtractId DESC";
但是当它运行时会产生以下异常
org.hibernate.hql.ast.QuerySyntaxException:意外令牌:= .....
【问题讨论】:
-
可以参考这里 - stackoverflow.com/a/17588337/366964 类似的,可能会有所帮助。