在将杰克逊与弹簧靴一起使用时,如何防止休眠延迟加载?

时间:2018-08-07 20:38:10

标签: java spring hibernate spring-boot jackson

我将Spring Boot,Jackson和Hibernate用于具有后端(或多或少的休息..)API的基本后端。

现在的问题是,我想使用实体,而不想使用dto来降低复杂性。

问题是,当我检索带有集合的实体时,杰克逊会获取东西,是的,里面有一个圆圈。

我希望能够使用spring数据,jackson和实体类,但可以手动控制关联。

我不想使用JsonIgnore或其他注释对其进行配置。

Tx!

2 个答案:

答案 0 :(得分:1)

两种方法

  1. 使用@JsonIgnore
  2. 使用@JsonManagedReference(类似这样)和@JsonBackReference
  3. 我的最爱-使用@JsonView

干什么?

  1. 将从序列化/反序列化中排除不需要的属性
  2. 已明确解决循环依赖项的序列化/反序列化
  3. 将有效负载保持尽可能小-这使您可以选择应为给定端点序列化的属性。

哪个人最适合您?

由您自己决定,但是从描述来看,看起来2是可行的方式(可能与3结合使用) 祝你好运!

答案 1 :(得分:0)

DTO是在更复杂的情况下使用的方法,尤其是在入站端。为了对较简单的用例进行动态过滤,我为杰克逊编写了一个插件,以使用蚂蚁风格过滤。可能对您有帮助:

https://github.com/Antibrumm/jackson-antpathfilter