我正面临默认情况下默认LEFT join
加入非意外情况的情况,我想明确定义它,我该怎么做?
e.g。 createAlias('fault.tgmap', 'tg', CriteriaSpecification.LEFT_JOIN)
默认选择了错误的列,即group_id而不是fault_id(请注意,tg在生成的sql查询中有两列fault_id
和group_id
)。
如何明确指定ON应该发生哪种条件,即fault.id = tgmap.fault_id instead of fault.id = tgmap.group_id?
要提供特定于域的信息,trace,fault和tracegroup16是域表。
def results = trace.list(max:max, offset:offset) {
createAlias('fault', 'fault',CriteriaSpecification.LEFT_JOIN)
createAlias('fault.tgmap', 'tg', CriteriaSpecification.LEFT_JOIN)
createAlias('tg.traceGroup16','tr', CriteriaSpecification.LEFT_JOIN)
projections
{
property('fault.id')
property('tr.geckId')
}
}
答案 0 :(得分:1)
看看你的模型看起来很有用,但我认为你可以这样做:
Fault.createCriteria().list() {
createAlias('tgmap', 'tg', CriteriaSpecification.LEFT_JOIN)
eqProperty('tg.fault.id', 'id')
}