覆盖grails域类中的getter和setter以获取关系 [英] Override getter and setter in grails domain class for relation
问题描述
如何重写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屋!