2017-10-01 3 views
2

Ich habe einen OneToMany reltionShip zwischen zwei Einheiten Deserialisierung:Jackson gescheitert OneToMany Beziehung Entität

public class Product { 
    @JsonBackReference 
    private List<ProductDetail> listProductDetail; 

Und

public class ProductDetail { 
    @JsonManagedReference 
    private Product product; 

Ich versuche, die Einheit Product deserialisieren, aber ich bin immer erhalte die folgende Ausnahme:

jackson can not handle managed/back reference 'defaultreference': back reference type (java.util.list) not compatible with managed type 

ich verschiedene json Formate tryed haben (einschließlich der Produk t in der JSON-Nachricht, entfernen Sie dieses Feld), aber immer das gleiche Ergebnis.

Kann jemand mir bitte erklären, was tut dieser Fehler bedeutet und wie es zu lösen, ohne meine Entitäten, wenn möglich zu modifizieren (die Einheiten Teil unserer Datenmodell-Komponente sind, die von anderen Kollegen verwendet wird)

Dank

+0

Vielen Dank für Ihre schnelle Antwort, ich nicht, dass die Anmerkung vor verwendet haben, könnten Sie bitte weitere Informationen hinzufügen, wie es hinzuzufügen und warum ich bin Wenn ich diese Ausnahme bekomme, möchte ich wissen, warum Jackson diesen Fehler wirft? Danke – Zizou

Antwort

0

Sie könnten stattdessen versuchen, und verwenden @JsonIdentityInfo auf den Entitäten wie:

public class Product { 
    @JsonIdentityInfo 
    private List<ProductDetail> listProductDetail; 

public class ProductDetail { 
    @JsonIdentityInfo 
    private Product product; 
+0

Danke, Gibt es eine Lösung, ohne meine Entitäten zu ändern, wie sie von anderen Modulen geteilt werden? Und können Sie bitte helfen, warum Jackson diese Ausnahme wirft? – Zizou

+0

@Zizou Meinst du nicht, Anmerkungen in den Modellen/Entitäten zu ändern? – nullpointer

+0

Ja, ohne die Anmerkungen zu ändern – Zizou

Verwandte Themen