【发布时间】:2013-12-02 18:52:28
【问题描述】:
在我的 Spring WebMVC 应用程序中,我试图反序列化对象引用列表。
这是我的模型字段的样子:
@Entity
@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")
public class Article {
@Id
private Integer id;
@ManyToMany(cascade=CascadeType.ALL)
@JsonIdentityReference(alwaysAsId=true)
private List<Article> related;
}
每当我尝试反序列化 JSON 对象时,都会收到以下调试消息:
com.fasterxml.jackson.databind.JsonMappingException: 无法解析 对象 ID [351](用于 [简单类型,类 com.company.package.domain.Article]) -- 未解决 前向参考? (通过参考链: com.company.package.domain.Article["related"])
对象如下所示:
{
"id": 123,
"related": [351]
}
我已经尝试编写我的自定义反序列化器来处理这个问题,但是由于关系是同一个类的对象,Jackson 也会尝试使用自定义反序列化器反序列化父对象,这显然会失败,因为它是不只是一个整数......
那么有没有办法告诉 Jackson 使用数据库来查找 ID 后面的对象?
【问题讨论】:
标签: java spring-mvc jackson