java - Grails查询关联问题

标签 java grails hql criteria grails-orm

我在为以下域类编写查询时遇到问题:

class Person {
  static hasMany = [memberships: Membership]
}

class Membership {

    static belongsTo = [person: Person, group: Group]

    Date joinDate = new Date();
    Group group;
    Person person;
}

class Group {
     static hasMany = [memberships: Membership]
}

基本上,我想找到属于组列表的所有人(假设组 ID 是 (1,2)。这里的技巧是该人必须是两者的成员组。我更喜欢条件查询,但 HQL 也可以。

请注意,使用类似 group.id in (1,2) 的查询将不起作用,因为它可以是任何组,而不是两者

最佳答案

这是我的简单 HQL 方法:

Person.executeQuery("FROM Person x WHERE x IN (SELECT m.person from Membership m WHERE m.group = :group1) AND x IN (SELECT m.person from Membership m WHERE m.group = :group2)", [ group1: Group.get(1), group2: Group.get(2) ])

干杯

关于java - Grails查询关联问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/824306/

相关文章:

Hibernate如何使用order by子句按字段总和排序

java - 在特定时间运行Java程序

validation - 如何确保在Grails中设置 boolean 字段?

java - HTTPS 请求仅在低于 20 的 Android API 上挂起,即使设置了连接超时也是如此

grails - 向我的 Controller 列表方法添加更多约束

grails - 通过 grails 域类中的构造函数设置 groovy getter/setter 方法

java.lang.NullPointerException 因为我没有访问该表的权限

nhibernate - 如何在 NHibernate 中使用左连接查询实现分页

java.lang.ClassCastException : com. example.Entity 无法转换为 com.example.Entity

java - 在服务的 onStartCommand 中返回什么