我正在使用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://github.com/FasterXML/jackson-datatype-hibernate/issues/77
此处也有报道,这似乎是一个已知的问题:
https://github.com/FasterXML/jackson-datatype-hibernate/issues/97