Grails GORM让人们拥有这两个标签

时间:2017-11-28 13:22:23

标签: hibernate grails gorm

我有课程:

class Person {
    static hasMany = [tags: Tag]
}

class Tag {
}

为了从tagList获得至少有一个标签的人我可以创建一个标准

public Criteria hasAtLeastOneOf(List<Tag> tagList) {
    return Person.createCriteria().buildCriteria {
        'tags' {
          'in' 'id', tagList.collect{it.id}
        }
    }
}

我需要创建什么样的标准才能让所有拥有tagList中每个标记的人(例如tagList [0]和tagList [1]等)。

1 个答案:

答案 0 :(得分:0)

类似于这个悬而未决的问题:

Grails 2.5.1 (hibernate 3) criteria multiple joins to same table

简而言之,您需要Person和Tag之间的多个连接,一个用于您要比较的列表中的每个标记。正如关于链接问题的评论所描述的那样,这可以通过手动构建联接在HQL中完成,但标准并没有(似乎?)支持这一点。