问题序列化Lazy @ManyToOne

时间:2017-02-22 15:34:42

标签: java hibernate jackson spring-data-rest

我正在使用Jackson的Hibernate4Module来处理Spring Data Rest项目中处理延迟加载代理时的序列化问题。

一般来说,它解决了Jackson尝试序列化未初始化代理的问题,但是一个副作用是JSON输出不同:

直接获取:api / cases / 5400

{
   "id": 5400,
   "practiceReference": "DWPYI9"
}

通过延迟加载的@ManyToOne获取:api / submissions / 11901 / parentCase

{
   "content": {
      "id": 5400,
      "practiceReference": "DWPYI9"
   }
}

通过非延迟加载的@ManyToOne获取:api / submissions / 11901 / parentCase

{
   "id": 5400,
   "practiceReference": "DWPYI9"
}

从上面可以看出,序列化惰性@ManyToOne关联时JSON表示不同:实体包含在“content”节点中。

如果关联是非延迟的,则无论路径如何都会写入相同的表示。

是否有这样的原因,并且可以以某种方式阻止额外的“内容”节点?

更新

我在这里找到了相同(删除)的问题:

https://stackoverflow.com/questions/33194554/two-different-resulting-jsons-when-serializing-lazy-objects-and-simple-objects

引自:

https://github.com/FasterXML/jackson-datatype-hibernate/issues/77

此处也有报道,这似乎是一个已知的问题:

https://github.com/FasterXML/jackson-datatype-hibernate/issues/97

0 个答案:

没有答案