gpt4 book ai didi

Grails:通过与字符串的一对多关联查找

转载 作者:行者123 更新时间:2023-12-02 05:06:12 24 4
gpt4 key购买 nike

我有以下域类:

class User {
static hasMany = [roles:String]
}

我想找到具有角色ROLE_ADMIN的每个用户。是否有可能使用动态查找器来做到这一点? user.findAllByRoles('ROLE_ADMIN') 似乎给了我一个错误。

更新:查询关联非常容易,其中类 A 具有类 B 实例列表以及 A B 是域类。但这里类 A 是一个域类,类 B 是一个简单的 Java 字符串。

查询包含另一个域对象列表的关联的代码如下所示:

`User.findAll { roles { role_name=='ROLE_ADMIN' } }`

我正在寻找的是一种指定字符串值的方法,例如:

`User.findAll { roles {THIS_VALUE=='ROLE_ADMIN' }}`

更新2:据我发现,不可能对原始类型集合使用条件。不过,可以使用 HQL:

User.findAll("from User a where :roles in elements(roles)",[roles:'ROLE_ADMIN'])

但是,它不如 findAllwhere 查询有用。我无法链接 findAll 方法,因此定义其他方法,例如:获取用户名如“xxx”的 ROLE_ADMIN 用户需要重写整个 HQL 查询。也许可以用 where 表达式的形式表达上述 HQL 条件?

最佳答案

也许你可以这样做:

如果你已经有用户列表(userList)

def list = userList.findAll { user -> user.roles =~ 'ROLE_ADMIN' }

希望这有帮助!

关于Grails:通过与字符串的一对多关联查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12495104/

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