如何覆盖getter和setter字段作为grails领域类中的一对多关系?我知道如何覆盖作为单个对象的字段的getters和setter,但我对Collections有问题。这里是我的情况:覆盖grails领域类中的getter和setter关系
我有实体域类,它有很多标题。现在我想重写标题的getter以获得只有标志isActive等于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'
}
}
谢谢你的帮助。
你会得到什么错误? – dmahapatro
对这个需求背后的推理感兴趣,为什么不使用单独的方法呢?和现在一样,如果你需要添加能够检索所有标题的功能,那么你将不得不编写单独的方法,默认情况下可以支持。 –
请注意:http://grails.1312388.n4.nabble.com/Customized-getter-td1380706.html#a1380709。总之,确保你的setter和getter不会改变这个值,否则Hibernate会被混淆。 –