【发布时间】:2014-11-21 15:59:45
【问题描述】:
我整天都在搜索这个主题,并检查了几乎所有提交的关于它的问题。
这是我的问题:让 Jackson 尊重 hibernate 中定义的惰性属性对我来说应该是一项简单的任务。但正如我所注意到的,我认为几乎每个开发宁静的 java spring 应用程序并依赖于来自服务器的 Json 响应的人都面临这个问题的解决方案。 Json 响应包含大多数时候不应该包含其他相关对象的序列化对象(这些对象总是由 Jackson 获取,这导致不需要 sql 查询和额外的不必要的加载时间)。
即使是 jackson 数据类型 hibernate 库也只提供了一种解决方案来防止当 Jackson 尝试序列化延迟未加载的属性时引发的序列化异常,而实际上并未将序列化限制为仅获取的属性。此外,使用 JsonIgnore 注解并不能解决问题,因为它甚至会阻止 Jackson 永远序列化 fetched/eager 属性。
有人知道这个问题的解决方案吗?如果不是,我只想知道通常使用什么方法让服务器以 json 格式响应相同的加载对象而不更改任何其他内容?
编辑:
很抱歉没有提供实际代码,我的情况完全符合jackson - do not serialize lazy objects 中的问题。由于该问题没有解决方案,因此我强调该问题以确保是否有解决方案,或者在这种情况下使用的方法是什么,而不是使用 Jackson 以 JSON 格式作为响应发送到对象。
谢谢
【问题讨论】:
-
请发布一些生成的 JSON 响应的示例和一些带有注释的类。目前还不清楚是什么问题。
-
我已经编辑了我的问题并参考了描述实际问题的现有代码,谢谢。
-
那篇文章有几个解决方案。他们怎么了?
-
@JsonIgnore 已经工作了。
标签: java spring hibernate jackson lazy-loading