【发布时间】:2015-02-27 14:52:01
【问题描述】:
我目前正在将一个大型项目从 Grails 转换为 Spring:在尝试延迟加载对象 id 而不必选择整个表时,我有点卡住了。
我希望它的工作方式,/Object/:
Object
List<child> children
像这样输出:
{children:[{id:1},{id:2}]}
因此,如果需要,我可以从另一个控制器访问该内部对象,如果需要,可以使用我在所有控制器中实现的常规 CRUD 方法。 /child/1
考虑到 JSON 输出,我在序列化期间无法使用 Session,这是可以理解的,我已经看到诸如在服务层中调用 object.child.getId() 之类的方法对我来说似乎令人难以置信,而且还会导致要延迟加载的整个对象。
总的来说,我希望创建一个简单的 Rest 应用程序,可以轻松自定义 json 输出,grails 用 JSON Marshalling 插件做得非常好:https://grails.org/plugin/marshallers
编辑: 我真的不希望设置预加载,但预加载是一种可能性。有没有办法让 Eager Loading 达到最大深度?
{
children: { //depth 1
children-children: { //depth 2 (Ignore this)
}
}
}
【问题讨论】:
标签: java json spring hibernate jpa