gpt4 book ai didi

java - Jackson:无法使用嵌套 DTO 处理托管/反向引用 'defaultReference'

转载 作者:行者123 更新时间:2023-12-01 18:01:54 25 4
gpt4 key购买 nike

最近使用这两个 DTO 我遇到了这个错误

MappingJackson2HttpMessageConverter:163 - Failed to evaluate Jackson deserialization for type [simple type, class seml.dto.PoiDto]: java.lang.IllegalArgumentException: Can not handle managed/back reference 'defaultReference': back reference type (java.util.Set) not compatible with managed type (seml.dto.ConceptDto)

正如您在下面的代码中看到的,我有一组 ConceptDto 对象,它们分别具有一些更广泛/更窄/相关的 ConceptDto 对象集。当然,我使用 @JsonManagedReference/@JsonBackReference 是错误的,但我不明白如何使用。有人可以帮我解决这个问题吗?谢谢大家。

PoiDto.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>();
[...]

ConceptDto.java

public class ConceptDto extends GenericDto<String> {

private String prefLabelIt;
private String prefLabelEn;
private String code;
private double rating;


@JsonBackReference
private Set<ConceptDto> broaders = new HashSet<ConceptDto>();

@JsonManagedReference
private Set<ConceptDto> narrowers = new HashSet<ConceptDto>();

@JsonIgnore
private Set<ConceptDto> relateds = new HashSet<ConceptDto>();

[...]

最佳答案

请首先尝试删除@JsonBackReference和@JsoonManagedReference并添加此 @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class , property = "id") ,我希望这对你有用,因为我遇到了同样的问题并且它对我有用:)

关于java - Jackson:无法使用嵌套 DTO 处理托管/反向引用 'defaultReference',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40300539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com