Grails的CreateCriteria逻辑性和OR性都不正常。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Grails的CreateCriteria逻辑性和OR性都不正常。相关的知识,希望对你有一定的参考价值。
我正试图根据 "国家 "标准对一组对象进行过滤。
...
or
office
state
'in'('abbrev', filters.stateFilter)
state
'in'('abbrev', filters.stateFilter)
如果OR中的State过滤器被包含在cide中,它只得到与State相匹配的对象,而不是Office.State。如果我删除State过滤代码,它就会正确地得到对象的Office.State。
标准需要得到对象的状态(如果有的话)以及对象的Office.State(如果有的话)。
我认为这与标准构建器中的一些隐式连接有关?
如果有任何线索,我将非常感激
答案
感谢评论中的Jeff,让我能够打开SQL日志,通过一些更多的Googling找到我的问题解决方案。正如我所怀疑的那样,它正在执行一个内部连接。以下是我需要解决这个问题的代码。
...
createAlias('state', 'state', JoinType.LEFT_OUTER_JOIN)
or
office
'in'('state.abbrev', filters.stateFilter)
'in'('state.abbrev', filters.stateFilter)
以上是关于Grails的CreateCriteria逻辑性和OR性都不正常。的主要内容,如果未能解决你的问题,请参考以下文章
使用 createCriteria 的 Grails 子查询
引起:java.lang.NoSuchMethodError: createCriteria grails
Grails 2.x createCriteria 'or' 不适用于嵌套关联