我有课程:
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]等)。
答案 0 :(得分:0)
类似于这个悬而未决的问题:
Grails 2.5.1 (hibernate 3) criteria multiple joins to same table
简而言之,您需要Person和Tag之间的多个连接,一个用于您要比较的列表中的每个标记。正如关于链接问题的评论所描述的那样,这可以通过手动构建联接在HQL中完成,但标准并没有(似乎?)支持这一点。