CreateCriteria - 在hasMany关联中使用逻辑OR

时间:2015-10-01 09:21:00

标签: grails gorm has-many createcriteria

我想获得在其列表(firstsList或SecondsList)中包含特定用户的实例 在我的解决方案中,创建条件仅考虑第一个用户列表。 这似乎是对逻辑OR的错误用法


class ClassA {
    static hasMany =  [firstsList:User,SecondsList:User]
}

服务

def idList =  ClassA.createCriteria().list () {

projections { distinct ( "id" )
    property("name")
    property("id")
}

or {                 
   firstsList{eq("login", 'John')}             
   SecondsList{eq("login", 'John')}                                 
 }

order("name","desc")

}

return idList

1 个答案:

答案 0 :(得分:1)

这背后的原因是hibernate默认使用inner join。但在您的情况下,您需要left join。为此,您可以使用createAlias的{​​{1}}。

createCriteria