所以我有一个对象Person,下面的字段(为简单起见)
class Person{
String name
List<Address> addressList
}
class Address{
String streetNo
}
这通常是要走的路,但是现在我正在使用grails,我认为应该是以下情况:
class Person{
String name
List addresses
static hasMany = [addresses: Address]
}
class Address{
String streetNo
static belongsTo = Person
}
我正在从HTTP调用接收数据,并试图保存它:
def persons = response.getAt("response").getAt("persons").collect()
persons.forEach({ current ->
def person = new Person(current)
person.save()
})
解析工作正常,就像我在保存人对象之前检查该人对象时,可以看到地址已正确添加(起初未保存且没有ID,但是在保存后添加了ID)
现在,当我想获取所有人时,我会做一个基本的
respond Person.list()
我得到的所有详细信息都是正确的,但是我只得到地址ID,所以例如:
{
id: 1,
name: foo,
addresses:[
{id:1},{id:2}
]
}
但是我在这里想要的是实际的地址对象而不是它的ID!我还注意到,在检索“人员”列表几次后,地址列表变空了,最终得到了地址:[]
我试图删除hasMany并返回列表,但它也不起作用,我查阅了官方文档,但没有什么比我已经尝试过和/或提到的要多的内容了
有几种方法可以呈现hasMany
引用: