Ala*_*Hay 5 java serialization hibernate jackson spring-data-rest
在 Spring Data Rest 项目中处理延迟加载代理时,使用 Jackson 的Hibernate4Module来处理序列化问题。
一般来说,它解决了 Jackson 尝试序列化未初始化代理的问题,但一个副作用是 JSON 输出不同:
直接获取:api/cases/5400
{
"id": 5400,
"practiceReference": "DWPYI9"
}
Run Code Online (Sandbox Code Playgroud)
通过延迟加载的 @ManyToOne 获取:api/submissions/11901/parentCase
{
"content": {
"id": 5400,
"practiceReference": "DWPYI9"
}
}
Run Code Online (Sandbox Code Playgroud)
通过非延迟加载的 @ManyToOne 获取:api/submissions/11901/parentCase
{
"id": 5400,
"practiceReference": "DWPYI9"
}
Run Code Online (Sandbox Code Playgroud)
从上面可以看出,序列化惰性@ManyToOne关联时 JSON 表示有所不同:实体包装在content节点中。
如果关联是非惰性的,则无论路径如何,都会写入相同的表示形式。
这是否有原因,并且可以以某种方式阻止附加的“内容”节点吗?
2017 年 2 月更新:
我在这里找到了相同的(已删除的)问题:
/sf/ask/2323618811/ different-resulting-jsons-when-serializing-lazy-objects-and-simple-objects
这是从这个 github 问题中引用的。另外,这里报告了,所以似乎是一个已知问题:
| 归档时间: |
|
| 查看次数: |
3187 次 |
| 最近记录: |