2016-10-28 5 views
0

と「defaultReference」最近、これらの二つのDTOと、私はこのエラージャクソン:バック/管理の参照を扱うことができない、ネストされたのDTO

MappingJackson2HttpMessageConverterました:163 - タイプのジャクソン のデシリアライゼーション[単純型、クラスを評価するために失敗しました。 [seml.dto.PoiDto]: java.lang.IllegalArgumentException:管理対象/バックを処理できません 参照 'defaultReference':バック参照型(java.util.Set) 管理対象型(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>(); 

[...] 

答えて

4

@JsonBackReferenceと@JsoonManagedReferenceを削除して、この @JsonIdentityInfo(発電機= ObjectIdGenerators.PropertyGenerator.class、プロパティを追加するために、まず試してみてください= "id")、私はこの問題を抱えていて、それは私のために働いていたので、これはあなたと協力したいと思っています:)

+0

ありがとう、あなたは私の時間を救った... –

関連する問題