最近这两个DTO我收到了这个错误
MappingJackson2HttpMessageConverter:163 - 无法评估杰克逊 类型[simple type,class seml.dto.PoiDto]的反序列化: java.lang.IllegalArgumentException:无法处理托管/返回 reference' defaultReference':返回引用类型(java.util.Set)不 与托管类型兼容(seml.dto.ConceptDto)
正如您在下面的代码中看到的,我有一组ConceptDto对象,它们分别具有一些扩展器/缩小器/相关的ConceptDto对象集。当然我使用@JsonManagedReference / @JsonBackReference是错的,但我不明白怎么做。 有人可以帮我解决这个问题吗?谢谢大家。
PoiDto.java
pr.__property.PropertyType = {Name = "LocalizedString" FullName = "Sampo.CMS.LocalizedString"}
ConceptDto.java
public class PoiDto extends GenericDto<String>{
private String id;
private String uri;
private String title = "";
private String description = "";
@JsonManagedReference
private Set<ConceptDto> concepts = new HashSet<ConceptDto>();
@JsonManagedReference
@JsonBackReference
private Set<PoiDto> relatedPOIs = new HashSet<PoiDto>();
private Set<ProductOrServiceDto> relatedProductOrServices = new HashSet<ProductOrServiceDto>();
[...]
答案 0 :(得分:4)
请先尝试删除@JsonBackReference和@JsoonManagedReference并添加它 @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class,property =&#34; id&#34;),我希望这适合你,因为我有同样的问题,它对我有用:)