我正在使用Grails 2.4.4。我有域名
class Purchase {
static hasMany = [dataList:DataByPeriod]
String name
Set<DataByPeriod> dataList
public Set<DataByPeriod> getDataList(){
dataList?.findAll { (!it.isDeleted) }
}
def getPeriodList(){
this.dataList?.period?.unique()?.sort{it.name}
}
}
另外两个:
class DataByPeriod {
static belongsTo = [purchase:Purchase, period:Period]
Long value
}
class Period {
static hasMany = [dataList:DataByPeriod]
String name
}
现在我想收到给定purchaseInstance的所有期间。如果我这样做:
purchaseInstance?.dataList?.period?.unique()?.sort{it.name}
我会获得正确的数据(dataList
的getter将被调用,所有isDeleted==true
的记录都将被忽略
但如果我这样做: purchaseInstance?.getPeriodList() 将不会调用getter并显示所有记录?
为什么会这样?为什么我甚至无法将'getPeriodList()`方法更改为:
def getPeriodList(){
this.getDataList()?.period?.unique()?.sort{it.name}
}
它表示“没有方法getDataList()用于类购买”。