在没有hasMany关系的情况下获取restful域对象

时间:2014-09-05 14:00:40

标签: grails

我们正在用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关系时,我得到了我想要的内容,但是,我需要这种关系来执行复杂的Criteriahql查询

如何在没有hasMany关系的情况下返回数据。

感谢。

0 个答案:

没有答案