gpt4 book ai didi

mongodb - hasMany关系为NULL时grails对象查询

转载 作者:行者123 更新时间:2023-12-02 16:01:27 26 4
gpt4 key购买 nike

hasMany属性为null时,无法获取对象列表。

Class User {
...
List<EMail> emails
static hasMany = [emails: EMail,... ]
static mappedBy = [emails: 'customer',...]
...
}

其中电子邮件是具有某些字符串属性的另一个类

现在我试图做一个简单的查询为:

方法1:
def users = User.findAllByEmailsIsEmpty()

这给错误为:
 Queries of type IsEmpty are not supported by this implementation

方法2:
def users = User.findAllByEmailsIsNull()

这使所有用户具有与之关联的电子邮件对象。

然后我想到了尝试条件查询( https://grails.github.io/grails-doc/latest/ref/Domain%20Classes/createCriteria.html)

方法3:
def userCriteria = User.createCriteria()
def users = userCriteria.list(){
sizeEq('emails', 0)
}

这没有结果(users.size()为0)

方法4:
def userCriteria = User.createCriteria()
def users = userCriteria.list(){
isNull('emails')
}

这再次给所有用户,甚至是那些没有电子邮件的用户。

方法5:
 def userCriteria = User.createCriteria()
def users = userCriteria.list(){
isEmpty('emails')
}

这给出了错误:
该实现不支持IsEmpty类型的查询

方法6:
def userCriteria = User.createCriteria()
def users = userCriteria.list(){
eq('emails', null)
}

这再次列出了所有用户。
PS: Grails is configured with Database as MongoDB.

最佳答案

我会使用grep方法。像这样:

nullEmailUsers = User.list().grep {
!it.emails
}

关于mongodb - hasMany关系为NULL时grails对象查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30414336/

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