![](/img/trans.png)
[英]How to retrieve data from Hibernate bidirectional OneToMany ManyToOne in Java Spring
[英]Spring Data JPA - Hibernate - OneToMany, ManytoOne bidirectional
有 2 個實體:訂單和產品。 1 個訂單可以有許多產品,許多產品可以屬於 1 個訂單(每個產品只屬於 1 個訂單)。
通過 Order Entity 的單向關聯,我可以在執行 orderRepo.findAll() 時檢索產品詳細信息; 以類似的方式,執行 productRepo.findAll() 時需要訂單詳細信息;
試過的代碼:
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "order_details")
public class OrderData {
@Id
@Column(name = "order_id", nullable = false, unique = true)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long orderId;
@NotNull
@Column(name = "customer_name", nullable = false)
private String customerName;
@OneToMany(mappedBy = "productId", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private Set<ProductData> products;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "product_details")
public class ProductData {
@Id
@Column(name = "product_id", nullable = false, unique = true)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long productId;
@NotNull
@Column(name = "product_name", nullable = false)
private String productName;
@ManyToOne(fetch = FetchType.LAZY, optional = false, cascade = CascadeType.ALL)
@JoinColumn(name = "order_id", nullable = false)
private OrderData orderData;
}
在插入產品時; 我們收到錯誤: “在表上插入或更新違反了外鍵約束 jpa”
執行 productRep.findAll(): hibernate select 查詢的無限循環
試過@JsonIgnore。 這不會返回子元素或父元素。 嘗試過 @JsonManagedReference 與 @JsonBackReference - 仍然沒有運氣。
請指導我
mappedBy 屬性指向錯誤的字段:
@OneToMany(mappedBy = "productId", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private Set<ProductData> products;
這必須是反向引用:
@OneToMany(mappedBy = "orderData", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private Set<ProductData> products;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.