我们正在用grails编写一个json API。以下是域和控制器的简化示例:
class Employee {
String name
Section section
}
class Section {
static hasMany = [employees: Employee]
String name
}
@Transactional(readOnly = true)
class SectionController {
static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"]
static responseFormats = ['json']
def index() {
request.withFormat {
json {
respond Section.list()
}
}
}
}
我希望获得没有员工的Section
列表,例如:
[
{"class":"Section","id":1,"name":"A"},
{"class":"Section","id":2,"name":"B"},
{"class":"Section","id":3,"name":"C"},
{"class":"Section","id":4,"name":"D"},
{"class":"Section","id":5,"name":"F"}
]
但是控制器返回:
[
{"class":"Section","id":1,"name":"A","employees":[{"class":"Employee","id":1},{"class":"Employee","id":2},{"class":"Employee","id":3}]},
{"class":"Section","id":2,"name":"B","employees":[{"class":"Employee","id":4},{"class":"Employee","id":5},{"class":"Employee","id":6},{"class":"Employee","id":7}]},
{"class":"Section","id":3,"name":"C","employees":[{"class":"Employee","id":8},{"class":"Employee","id":9},{"class":"Employee","id":10}]},
{"class":"Section","id":4,"name":"D","employees":[{"class":"Employee","id":11}]}
]
当我删除hasMany
关系时,我得到了我想要的内容,但是,我需要这种关系来执行复杂的Criteria
和hql
查询
如何在没有hasMany
关系的情况下返回数据。
感谢。