Hibernate / JPA映射OneToOne关系/遗产

时间:2017-03-11 19:28:49

标签: jpa inheritance

我正在构建我的实体,我想知道两件事:

1)我有一个名为“Order”的类和一个名为“Order_Details”的类,我想让它们两边都是OneToOne,我怎么能做到? (与Order和Order_Validation相同)。

2)我创建了一个类“User”并继承了许多类(“Client”/“Manager”/“Accountant”...)“Manager”与其他类相关(例如“Order”)所以我的问题我在“订单”表中是否应该与“用户”或“经理”建立关系? (我没有身份证)

谢谢

2 个答案:

答案 0 :(得分:0)

1)关于你的第一个问题

Order Table

@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true, mappedBy = "order")
private OrderDetail orderDetail;

Order_details Table. ( It will have a order_id column in it)

@OneToOne(optional = false)
@JoinColumn(name = "ORDER_ID")
private Order order;

2)取决于你想做什么。

我建议使用USER表和USER_TYPE表。如果用户始终只属于用户类型,则在USER表中具有USER_TYPE_D键。如果没有像USER_TYPE_MAP表这样的一对多表。关于用户类型可以采取的操作,有一个ROLES引用表和一个名为USER_TYPE_ROLES的单独表,它映射用户可以扮演的角色。因此,在JPA中,您可以使用User,UserType,Roles,UserTypeRoles等,并相应地执行一对一或一对多映射。

答案 1 :(得分:0)

关于#2 ......

这取决于。你打算为他们准备不同的牌桌吗?如果是这种情况,那么您应该将关系放在Manager中。