java - 有没有办法避免 Jackson 序列化未获取的惰性属性

标签 java spring hibernate jackson lazy-loading

我在这个主题上搜索了一整天,并检查了几乎所有提交的相关问题。

这是我的问题:对我来说,让 Jackson 尊重 hibernate 中定义的惰性属性应该是一项简单的任务。但正如我注意到的,这个问题似乎没有解决方案,我认为几乎每个开发 Restful java spring 应用程序并依赖于服务器的 Json 响应的人都会面临这个问题。 Json 响应包含序列化对象,大多数情况下不应包含其他相关对象(这些对象始终由 Jackson 获取,这会导致不需要的 sql 查询和额外的不必要的加载时间)。

即使 Jackson 数据类型 Hibernate 库也只提供了一种解决方案,以防止 Jackson 尝试序列化惰性未加载属性时抛出序列化异常,而实际上并未将序列化限制为仅获取的属性。此外,使用 JsonIgnore 注释并不能解决问题,因为它甚至会阻止 Jackson 永远序列化 fetched/eager 属性。

有人知道这个问题的解决方案吗?如果不是,我只是想知道一般使用什么方法让服务器以 json 格式响应相同的加载对象而不更改任何其他内容?

编辑:

抱歉没有提供实际代码,我的情况完全符合jackson - do not serialize lazy objects中的问题。由于这个问题没有解决方案,我强调这个问题,以确保是否有解决方案,或者除了使用 Jackson 以 JSON 格式发送到对象作为响应之外,在这种情况下使用的方法是什么。

谢谢

最佳答案

刚刚回答了您链接的另一个问题,因为它比您的问题早。

回复可见:jackson - do not serialize lazy objects

请将其标记为欺骗并关闭。

关于java - 有没有办法避免 Jackson 序列化未获取的惰性属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26062976/

相关文章:

java - Spring 框架: how to pass a classes methods to another class' second method?

java - Hibernate:并发处理时防止重复插入?

java - 登录 Eclipse/OSGi 插件

java - Java 新手,需要帮助将文本字段中的元素存储到自定义类型对象中并将该对象存储到 ArrayList 中

java - 错误的 ApplicationContext 中 session 范围的 bean 泄漏

java - Spring REST 服务以单一方法使用和生成 HTML 表单 POST 和 AJAX/JSON

java - 用于拆分字符串以获取运算符的正则表达式

java - 如何在图形顶部绘制 JMenuBar

Hibernate内存数据+数据库

mysql - 如何将多行作为单个对象传递