Grails CreateCriteria逻辑OR工作不正常



我正试图根据"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)
}

相关内容

  • 没有找到相关文章

最新更新