Hibernate中实体间的共享性

Hibernate中实体间的共享性,hibernate,annotations,entity,Hibernate,Annotations,Entity,谢谢你阅读我的问题。 我是Hibernate新手,我想在许多带有注释的实体中使用1个实体。我确实试着用谷歌搜索我的问题,但仍然没有找到答案 例如,我有一些实体: 地址ID\地址,省,区,区 房子、电话、地址 职员、姓名、身份证和地址 客人、电子邮件、身份证地址 我希望地址表中的一条记录只属于房子、员工或客人 我考虑过一对一的关系,但这样我的地址实体必须声明私人住宅、私人员工或私人客人?有没有别的办法,或者我错过了什么 在大多数情况下,您应该将实体关系视为父子关系。有时孩子知道父母的事,有时不知道

谢谢你阅读我的问题。 我是Hibernate新手,我想在许多带有注释的实体中使用1个实体。我确实试着用谷歌搜索我的问题,但仍然没有找到答案

例如,我有一些实体:

地址ID\地址,省,区,区

房子、电话、地址

职员、姓名、身份证和地址

客人、电子邮件、身份证地址

我希望地址表中的一条记录只属于房子、员工或客人


我考虑过一对一的关系,但这样我的地址实体必须声明私人住宅、私人员工或私人客人?有没有别的办法,或者我错过了什么

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

在您的案例中,Address不需要知道其父实体,这意味着您不需要从Address实体到父实体,您只需要从父实体(如房屋、员工或客人)到Address

在这种情况下,只需声明一个从父对象到地址实体的@OneToOne关系,而不必引用父对象的from地址。这样,Hibernate将在父表中使用一列,该列使用地址ID指向地址表

您也可以考虑使用@可嵌入和@嵌入。可嵌入对象只是值对象,不被视为实体。可嵌入文件可以存储在与父实体相同的表中,也可以存储在自己的表中


我希望这能有所帮助。

这样,我的地址实体必须声明私人住宅:不,那是不正确的。阅读文档:非常感谢:D