我正试图根据"State"标准对一组对象执行筛选。
...
or {
office {
state {
'in'('abbrev', filters.stateFilter)
}
}
state {
'in'('abbrev', filters.stateFilter)
}
}
如果OR中的State过滤器包含在cide中,它只会得到与State匹配的对象,而不会得到Office.State。如果我删除State筛选器代码,它将正确地获得对象的Office.State。
标准需要获得对象的State(如果有(以及Office.State(如果有一个(。
我假设这与标准生成器中的一些隐式联接有关?
任何线索都将不胜感激!
感谢Jeff的评论,我能够打开SQL日志记录,通过更多的谷歌搜索来找到我的问题解决方案。正如我所怀疑的那样,这是在进行内部联接。以下是我解决此问题所需的代码。
...
createAlias('state', 'state', JoinType.LEFT_OUTER_JOIN)
or {
office {
'in'('state.abbrev', filters.stateFilter)
}
'in'('state.abbrev', filters.stateFilter)
}