2017-10-01 6 views
2

を直列化復元するために失敗しました:私は、エンティティProductDetailをデシリアライズしようとしているが、私はいつもだジャクソンは、私は2つのエンティティ間oneToMany reltionShipを抱えているOneToMany関係エンティティ

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

そして

public class ProductDetail { 
    @JsonManagedReference 
    private Product product; 

次の例外が発生します。

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

私は、さまざまなjson形式を試しました(プロダクションこのフィールドを削除するとjsonメッセージではなく)、常に同じ結果になります。

は(エンティティが他の同僚が使用している私たちのデータモデル要素の一部である)このエラーが意味ないものを、可能であれば私のエンティティを変更することなく、それを解決する方法を私に

おかげ

+0

私はあなたがそれを追加する方法の詳細を追加してください、なぜ私は可能性があり、その前にアノテーションを使用しませんでしたその例外を受けて、私はなぜジャックソンがそのエラーを投げているのか知りたいのですが? ありがとう – Zizou

答えて

0
を誰も説明していただけます

あなたが代わりにしてみてくださいとしての実体上の@JsonIdentityInfoを使用することができます。あなたの迅速な応答をありがとう、 を

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

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

ありがとう、 他のモジュールで共有されているので、エンティティを変更しないで解決策がありますか? ジャクソンがその例外を投げている理由を教えてください。 – Zizou

+0

@Zizouモデル/エンティティの注釈を変更していないことを意味しましたか? – nullpointer

+0

はい、注釈を変更することはありません – Zizou

関連する問題