gpt4 book ai didi

具有Hasmany字符串的Grails/GORM条件查询

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

我有一个这样的域对象(Cat):

class Cat {
String name

static hasMany = [
nicknames: String
]
}

(猫有名字,也有很多昵称(是字符串))

我正在尝试用某些昵称查询所有猫。

我已经试过了:
PagedResultList getCatsByNickname(String nickname, Map params) {
PagedResultList results = Cat.createCriteria().list(params) {
'ilike'('nicknames','%'+nickname+'%')
}
return results
}

但是它永远不会返回任何结果。 (如果我将查询更改为仅使用简单名称属性,则可以查找具有该名称的所有猫,但我想查询昵称。)

我也尝试过这个:
PagedResultList getCatsByNickname(String nickname, Map params) {
PagedResultList results = Cat.createCriteria().list(params) {
'nicknames' {
'ilike'('nicknames','%'+nickname+'%')
}
}
return results
}

但是我得到了错误:org.hibernate.MappingException:集合不是关联:example.Cat.nicknames

所以问题是,如何查询String类型的hasMany?

最佳答案

经过大量的尝试和研究,我发现它可以与Grails 2.4.0一起使用,我不知道较旧的版本。

Cat.withCriteria {
createAlias('nicknames', 'n')
ilike 'n.elements', '%kitty%'
}

诀窍是使用'n。 元素'

关于具有Hasmany字符串的Grails/GORM条件查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7531011/

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