覆盖grails域类中的getter和setter以获取关系

kpa*_*r87 6 grails grails-orm

如何覆盖grails域类中one-to-many关系字段的getter和setter?我知道如何覆盖作为单个对象的字段的getter和setter,但是我对Collections有问题.这是我的情况:

我有Entity域类,它有很多标题.现在我想覆盖标题的getter,只获得标志为isActive equals true的标题.我尝试过类似的东西,但它不起作用:

class Entity {

    static hasMany = [
        titles: Title
    ]

    public Set<Title> getTitles() {
        if(titles == null)
            return null
        return titles.findAll { r -> r.isActive == true }
    }

    public void setTitles(Set<Title> s) {
        titles = s
    }
}

class Title {
    Boolean isActive

    static belongsTo = [entity:Entity]

    static mapping = {
        isActive column: 'is_active'
        isActive type: 'yes_no'
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助.

dma*_*tro 5

需要参考Set<Title> titles

class Entity {
    Set<Title> titles

    static hasMany = [
        titles: Title
    ]

    public Set<Title> getTitles() {
        if(titles == null)
            return null;
        return titles.findAll { r -> r.isActive == true }
    }

    public void setTitles(Set<Title> s) {
        titles = s
    }
}
Run Code Online (Sandbox Code Playgroud)