Jackson 1.6 以降、2 つの注釈を使用して無限再帰問題を解決できることを知っています:@JsonManagedReference
と@JsonBackReference
.
問題は、これらの注釈が双方向の関係でのみ機能するように見えることです。代わりに、私のループは、一方向の関連付けで区切られた 4 つのオブジェクト間で成長します。Jsonでstackoverflowループを起こす属性を貼り付けます。
カート:
@OneToMany(fetch=FetchType.LAZY,cascade=CascadeType.ALL,orphanRemoval=true)
@JoinColumn(name = "cart_fk")
private Collection<CartLine> cartLines = new ArrayList<CartLine>();
カートライン:
@OneToOne
@JoinColumn(name="product_fk")
private Product product;
製品:
@ManyToOne
private User user;
ユーザー:
@OneToMany(fetch=FetchType.LAZY,cascade=CascadeType.ALL,orphanRemoval=true)
@JoinColumn(name = "user_fk")
private Collection<Cart> cart = new ArrayList<Cart>();
だから私はこのループを持っています: Cart
-> CartLine
-> Product
-> User
-> Cart
-> など。
一方向の関係によって作成されたこのループを停止するにはどうすればよいですか?