gpt4 book ai didi

grails - CreateCriteria-在hasMany关联中使用逻辑或

转载 作者:行者123 更新时间:2023-12-02 15:22:36 25 4
gpt4 key购买 nike

我想获取在其列表(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

最佳答案

其背后的原因是默认情况下使用inner join进行休眠。但是在您的情况下,您需要left join。为此,您可以使用createAliascreateCriteria

    def idList = ClassA.createCriteria().list() {
projections {
distinct("id")
property("name")
}

createAlias("firstsList", "fl", JoinType.LEFT_OUTER_JOIN)
createAlias("SecondsList", "sl", JoinType.LEFT_OUTER_JOIN)
or {
eq("fl.login", "John")
eq("sl.login", "John")
}

order("name", "desc")
}

关于grails - CreateCriteria-在hasMany关联中使用逻辑或,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32883882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com