gpt4 book ai didi

database - Grails hasmany 搜索 hasmany 的确切项目

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

我有两个 GORM 域类。一个是卡,卡上有很多购买。有什么方法可以搜索大于或等于某些购买的卡。这可能是一个例子

我们有4张牌:

Card1:橙、橙、苹果
Card2:苹果、橙子
Card3:橙色,橙色
Card4:苹果,苹果,橙子

假设我想搜索所有有 2 个或更多橙子的卡片。这样只会返回卡片 1,3。根据购买名称进行搜索。

最佳答案

假设您的域类是这样的......

class Card {
static hasMany = [purchases: Purchase]
}

class Purchase {
String name
}

您可以这样做:
def cards = Card.withCriteria {
resultTransformer = org.hibernate.Criteria.DISTINCT_ROOT_ENTITY

sizeGe('purchases', 2)

purchases {
eq('name', 'orange')
}
}

您可以使用 sizeGe() 而不是使用子查询它计算集合中的项目数并查找大于或等于提供的数量的计数。

但是,添加 eq()由于分组,查询导致结果包含重复项。子查询不会有副作用。所以 DISTICT_ROOT_ENTITY结果转换器过滤掉重复项 事后 .

您可以从我的文章 here 中了解有关条件查询的更多信息.

关于database - Grails hasmany 搜索 hasmany 的确切项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36359810/

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