在Hibernate中的实体之间共享enity

时间:2017-02-18 15:16:03

标签: hibernate annotations entity

感谢您阅读我的问题。 我是Hibernate的新手,我想在许多实体中使用1个实体(使用Annotaion)。我确实试图谷歌我的问题,但仍然没有找到答案。

示例,我有一些实体:

地址(ID_Address,省,区,区)

众议院(ID_House,电话,ID_Address)

员工(ID_Staff,姓名,ID_Address)

访客(ID_Guest,电子邮件,ID_Address)

我希望地址表中的一条记录只属于House或Staff或Guest。

我想到了一对一的关系,但这样我的地址实体必须声明私人住宅私人员工私人访客< / strong>?有没有其他方法可以做到这一点,或者我错过了什么?

1 个答案:

答案 0 :(得分:1)

在大多数情况下,您应该将实体关系视为“父子”。有时孩子知道它的父母,有时则不知道。

听起来在你的情况下,地址不需要知道它的父实体,这意味着你不需要从地址实体到达父实体,你只需要从家庭实体获取地址,例如House,Staff或Guest。

在这种情况下,只需声明从父实体到地址实体的@OneToOne关系,并且不要对地址中的父项进行任何引用。这样,Hibernate将使用父表中使用地址ID指向Address表的列。

您也可以考虑使用@Embeddable@Embedded。嵌入式只是“价值对象”,它们不被视为实体。 Embeddables可以与“父实体”存储在同一个表中,也可以存储在自己的表中。

我希望这会有所帮助。