如何在Grails中的hasMany关系中指定查询?

时间:2013-03-30 17:39:22

标签: hibernate grails gorm grails-2.0 grails-domain-class

我在Grails中有这个域类:

class User {
   String name

   Status status
   enum Status {
    ACTIVE(1),
    BLOCKED(2)
   }

 static hasMany = [friends:User]
}

因此,用户可以拥有一个或多个朋友(用户)。

当我做这样的事情时:

User someone = User.get(1)
someone.friends // all friends from this user

但是我想得到只有状态为ACTIVE的朋友。如何在域类中指定它?

由于

1 个答案:

答案 0 :(得分:0)

覆盖getFriends()方法。当然没有经过测试。

Set<User> getFriends() {

User.executeQuery("Select f from User u join u.friends as f where u = :user and  f.status = :status", [user: this, status: Status.ACTIVE])

}