【发布时间】:2021-08-17 20:07:38
【问题描述】:
我想在产品和供应商之间建立1对N的关系,这样一个供应商可以提供多个产品,而一个产品只有一个供应商。 我已经使用了相应的 JPA 注释,但仍然没有建立正确的关系。进入我所有的关系 1 到 N,因为值输入为 null。 发生了什么?
Product.java
@Entity
@Table(name="PRODUCTS")
public class Product implements Serializable{
private static final long serialVersionUID = 1L;
@Id //@GeneratedValue(strategy= GenerationType.AUTO)
private Long id;
private String name;
private String unit;
private double price;
private boolean available;
@ManyToOne (cascade = {
CascadeType.DETACH,
CascadeType.MERGE,
CascadeType.PERSIST,
CascadeType.REFRESH
})
@JoinColumn(insertable=false, updatable=false)
private Supplier supplier;
@OneToMany(mappedBy = "product", fetch = FetchType.EAGER, cascade = {
CascadeType.DETACH,
CascadeType.MERGE,
CascadeType.PERSIST,
CascadeType.REFRESH
})
private List<OrderDetail> orderDetails;
@ManyToMany
@JoinColumn(insertable=false, updatable=false)
private List<Category> categories;
@ManyToMany(mappedBy = "cart", fetch = FetchType.EAGER, cascade = {
CascadeType.DETACH,
CascadeType.MERGE,
CascadeType.PERSIST,
CascadeType.REFRESH
})
private List<Client> customers;
Supplier.java
@Entity
@Table(name="SUPPLIERS")
public class Supplier implements Serializable {
private static final long serialVersionUID = 1L;
@Id //@GeneratedValue(strategy= GenerationType.AUTO)
private Long id;
private String name;
private String contactName;
private String email;
private String password;
private String phone;
private String country;
private String city;
private String address;
private String postalCode;
@OneToMany(mappedBy="supplier", fetch = FetchType.EAGER, cascade = {
CascadeType.DETACH,
CascadeType.MERGE,
CascadeType.PERSIST,
CascadeType.REFRESH
})
private List<Product> suppliedProducts;
【问题讨论】:
标签: java hibernate jpa one-to-many many-to-one