我在Grails 3中创建了两个名为Address
和class City {
Long id
static hasMany = [addresses: Address]
static mapping = {
id generator: "increment"
}
}
class Address {
Long id
}
的域类:
RestfulController
我为这些类创建了两个控制器。控制器只是扩展 group("/api") {
"/city"(resources: 'city') {
"/addresses"(controller: 'address')
}
"/address"(resources: 'address')
}
类。我创建了以下URL映射:
localhost:8080/api/city/1/addresses
我的想法是我可以通过City
访问属于某个城市的地址(id = 1)。不幸的是,我总是得到所有地址,而不仅仅是属于给定index
的地址。如果我打破AddressController
的{{1}}方法,我会看到方法的params
包含cityId
,其中包含查询中传递的城市的ID。但是,似乎在数据库查询期间未获取id。我在这里做错了吗?我是否需要向belongsTo
添加mappedBy
/ City
或Address
?