1

Grails にこのドメイン クラスがあります。

class User {
   String name

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

 static hasMany = [friends:User]
}

したがって、ユーザーは 1 人以上の友達 (ユーザー) を持つことができます。

私がこのようなことをすると:

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

でも、ステータスがACTIVEの友達だけが欲しいです。ドメインクラスでこれを指定するにはどうすればよいですか?

ありがとう

4

1 に答える 1

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])

}
于 2013-03-30T18:07:58.657 に答える