【发布时间】:2018-06-17 13:17:09
【问题描述】:
我有一个 HQL 查询在 2 个表之间连接,field1 可能为空或有值。
如果它在第一个表中为空,我必须检查第二个表中是否为空,但如果它具有值,我必须检查table1.field1=table1.field1
如何在 HQL 中使用“Case When”来做到这一点?
【问题讨论】:
标签: hibernate case hql where-clause clause
我有一个 HQL 查询在 2 个表之间连接,field1 可能为空或有值。
如果它在第一个表中为空,我必须检查第二个表中是否为空,但如果它具有值,我必须检查table1.field1=table1.field1
如何在 HQL 中使用“Case When”来做到这一点?
【问题讨论】:
标签: hibernate case hql where-clause clause
我认为 HQL 查询应该是这样的:
SELECT t1 FROM Table1 t1, Table2 t2
WHERE t1.t2 = t2 AND
t1.field1 = (CASE WHEN t2.field1 is null THEN NULL ELSE t2.field1 END)
【讨论】: