我在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的朋友。如何在域类中指定它?
由于
答案 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])
}