Hibernate 继承建模

Posted

技术标签:

【中文标题】Hibernate 继承建模【英文标题】:Hibernate Inheritance Modeling 【发布时间】:2010-09-16 17:43:57 【问题描述】:

我在为几个在 Hibernate 和数据库中都正常的实体创建模型时遇到了麻烦。任何帮助表示赞赏。

存在公司实体和表,其中提供公司名称和“公司代码”。公司代码必须是唯一的。

公司可以充当 2 个不同的实体、客户或合作伙伴。

我们希望拥有单独的客户实体和合作伙伴实体。

我看到的复杂因素是

1) 公司既可以是客户,也可以是合作伙伴。

2) 公司代码必须保持唯一。

3) 我们希望能够通过 company_code 作为参数创建新的客户和合作伙伴。例如。 new Client("WALMART") 和 new Partner("WALMART") 应该映射到同一家公司。

单表和多表继承不起作用,因为它们不会将具有相同公司代码的商家和客户映射到单个公司。

谢谢大家。

【问题讨论】:

【参考方案1】:

您能否有一个公司表,合作伙伴和客户实体具有多对一链接?这将允许您将公司在合作伙伴和客户上设置为描述符(更多的是 has-a,尽管它更接近于类型),而无需继承。

【讨论】:

以上是关于Hibernate 继承建模的主要内容,如果未能解决你的问题,请参考以下文章

SSH快速进阶——Hibernate继承映射:每棵继承树映射一张表

Hibernate 映射继承

Hibernate学习7—Hibernate 映射继承

hibernate 继承映射

Hibernate 继承映射可能会遇到的错误

Hibernate 继承和 HQL