Grails如何进行合成(无论是否需要HasMany)

问题描述 投票:0回答:1

所以我有一个对象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并返回列表,但它也不起作用,我查阅了官方文档,但没有什么比我已经尝试过和/或提到的要多的内容了

java grails groovy gorm
1个回答
0
投票

有几种方法可以呈现hasMany引用:

© www.soinside.com 2019 - 2024. All rights reserved.