覆盖grails域类中的getter和setter以获取关系 [英] Override getter and setter in grails domain class for relation

查看:97
本文介绍了覆盖grails域类中的getter和setter以获取关系的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何重写getter和setter作为grails领域类中的一对多关系的字段?我知道如何覆盖作为单个对象的字段的getters和setter,但我对Collections有问题。这是我的情况:

我有Entity域类,它有很多标题。现在我想重写标题的getter以获得只有标志isActive等于true的标题。我试过类似的东西,但它不起作用:

  class实体{

static hasMany = [
标题:标题
]

公共设置<标题> getTitles(){
if(titles == null)
return null
return titles.findAll {r - > r.isActive == true}
}

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

类标题{
布尔isActive

静态belongsTo = [实体:实体]

静态映射= {
isActive列: 'is_active'
isActive type:'yes_no'
}
}



<

解决方案

需要参考 Set< Title> title 。

  class实体{
Set< Title> title

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
}
}


How to override getter and setter for field being a relation one-to-many in grails domain class? I know how to override getters and setters for fields being an single Object, but I have problem with Collections. Here is my case:

I have Entity domain class, which has many titles. Now I would like to override getter for titles to get only titles with flag isActive equals true. I've tried something like that but it's not working:

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'
    }
}

Thank You for your help.

解决方案

Need the reference 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
    }
}

这篇关于覆盖grails域类中的getter和setter以获取关系的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆