Java 如何决定JPA中应使用哪种实体关系
我有两个实体类,分别是Order和Shop。一张订单应该属于一家店铺,而且许多订单也可以属于一家店铺。 我现有的映射是从Order到Shop类的一对一单向映射,它正在工作Java 如何决定JPA中应使用哪种实体关系,java,hibernate,jpa,Java,Hibernate,Jpa,我有两个实体类,分别是Order和Shop。一张订单应该属于一家店铺,而且许多订单也可以属于一家店铺。 我现有的映射是从Order到Shop类的一对一单向映射,它正在工作 @Entity @Table(name = "order") public class Order implements Serializable { @Id @Column(name = "id") private Long id; @Column(name = "orderno")
@Entity
@Table(name = "order")
public class Order implements Serializable {
@Id
@Column(name = "id")
private Long id;
@Column(name = "orderno")
private Long orderNumber;
@OneToOne
@JoinColumn(name = "shopid")
private Shop shop;
..
}
@Entity
@Table(name = "shop")
public class Shop implements Serializable {
@Id
@Column(name = "id")
private Long id;
@Column(name = "key")
private String key;
@Column(name = "name")
private String name;
..
}
现在我发现订单购物可能是一种多人关系,应该是有效的。
现在我想知道这两个方案有什么不同,应该使用哪一个
此外,我也不是100%确定如何决定实体关系中的哪一个应该像一对一、一对多、多对一、多对多那样使用,以及关系应该是单向的还是双向的。任何解释或建议阅读都会有帮助。当商店只能有一个订单时,你应该选择一对一关系 一对多,一个商店可以有多个订单。 当多个订单可以属于同一家店铺时,多对一只是上一个订单的倒数 多对多是指一个商店可以有多个订单,而这些订单可以同时属于不同的商店