Java HQL错误时的情况

Java HQL错误时的情况,java,sql,hql,Java,Sql,Hql,我有以下疑问: FROM Tbloans WHERE paidamt - (case when due=lastdue then dueamt else dueamt+nxtduedt end)>1 它给了我这样一个错误: 应为“end”,找到“+”意外标记:end 很抱歉,我的电脑无法访问Internet,因此我正在使用电话。无法粘贴整个错误。不要在where子句中使用case。这只是布尔逻辑 WHERE (due = lastdue and paidamt - dueamt >

我有以下疑问:

FROM Tbloans WHERE paidamt - (case when due=lastdue then dueamt else dueamt+nxtduedt end)>1
它给了我这样一个错误:

应为“
end
”,找到“
+
”意外标记:end


很抱歉,我的电脑无法访问Internet,因此我正在使用电话。无法粘贴整个错误。

不要在
where
子句中使用
case
。这只是布尔逻辑

WHERE (due =  lastdue and paidamt - dueamt > 1)
   OR (due <> lastdue and paidamt - (dueamt + nxtduedt) > 1)
其中(到期日=最后到期日和最后到期日-到期日>1)
或(到期日和付款日-(到期日+nxtduedt)>1)

谢谢。它给了我想要的结果。不过,我的查询在SQL中工作。你知道为什么它在HQL中不起作用吗?不,对不起,我不是HQL专家