我有这样的域名
class A{
String mainAddress
static hasMany = [Bs: B]
static mapping = {
mainAddress formula: ('select ad.zip from B ad where ad.a_id=id')
}
}
Class B{
String zip
static belongsTo = [a: A]
}
let A1 ->B1
->B2
and A2 ->B3
->B4
A3 ->B5
->B6
etc..
现在我想根据邮政编码B1,B3,B5等进行排序
修改:我做了一些有问题的更改然后尝试访问
a.mainAddress
这给出了空
答案 0 :(得分:1)
如果我理解你,你想要通过zip对B对象属于A对象进行排序,如果是这样,这段代码应该适用于你:
def a = .. instance of A object
def listOfB = a.Bs.sort{it.zip}
或者如果您想在数据库上对其进行排序:
您应该向您的B班http://grails.org/doc/2.4.3/ref/Database%20Mapping/sort.html添加另一个静态映射:
static mapping =
{
sort "zip"
// or
sort zip : "asc" // or "desc"
}
该公式也应该是:
formula: '(select ad.zip from B ad where ad.a_id=this.id)'
而不是:
formula: ('select ad.zip from B ad where ad.a_id=id')
因为您没有指定要获取的对象的ID。