【问题标题】:Sharing enity among entities in Hibernate在 Hibernate 中的实体之间共享实体
【发布时间】:2017-07-08 02:25:46
【问题描述】:

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

例如,我有一些实体:

地址(ID_Address、省、区、区)

房屋(ID_House、电话、ID_Address)

员工(ID_Staff、姓名、ID_Address)

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

我希望地址表中的一条记录仅属于可能的房屋或员工或客人。

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

【问题讨论】:

标签: hibernate annotations entity


【解决方案1】:

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

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

在这种情况下,只需声明从父级到地址实体的@OneToOne 关系,而不是从地址到父级的任何引用。这样,Hibernate 将使用父表中的列,该列使用地址 ID 指向地址表。

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

我希望这会有所帮助。

【讨论】:

  • 非常感谢:D
猜你喜欢
  • 2021-07-04
  • 2016-03-21
  • 2017-09-26
  • 1970-01-01
  • 1970-01-01
  • 2021-06-22
  • 2015-10-07
  • 1970-01-01
  • 2012-11-10
相关资源
最近更新 更多