【发布时间】:2019-03-16 02:20:32
【问题描述】:
我正在尝试编写用于选择列值的 QueryDSL 表达式。距离“来自”表有几个连接:
a.b.c.get(0).field
其中b 可能是空对象,但如果不是,那么它在c 集合中最多有1 条记录。
我想要的是类似
new CaseBuilder()
.when(a.b.isNotNull().and(a.b.c.isNotEmpty()))
.then(a.b.c.get(0).field.stringValue())
.otherwise(Expressions.stringTemplate("''"))
这在 SQL 中隐式生成与b 和c 表的内部连接,这不是我想要的,因为当b 实际上是null 时它不会返回任何结果。添加显式左外连接无论如何都不会停止隐式连接。我很确定我没有以正确的方式思考这个问题,请帮助我摆脱困境:-)
【问题讨论】:
标签: sql hibernate hql querydsl