簡體   English   中英

Json和Jackson的Stackoverflow循環具有單向關系

[英]Json and Jackson stackoverflow loop with unidirectional relationships

我知道從Jackson 1.6開始,我可以使用兩個注釋來解決無限遞歸問題: @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 - >等。

如何停止由單向關系創建的循環?

您可以使用以下方式注釋您的實體

@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class)

使用您想要的任何生成器。 這將為每個對象提供一個標識符。 如果該對象再次出現,Jackson將使用其ID而不是對其進行完全序列化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM