9

一个实体是否有可能与多个表具有一对一的多态性关联。假设一个实体有 2 个特定的列,用于:

link_type - 标识应关联到哪个表的列

link_id - 识别表后定义表外键的列。

4

2 回答 2

9

我认为您的意思是多态关联的继承映射。

实体继承

JPA 有一个强大的特性,称为实体继承,类似于 java 中的类继承。实体类可以扩展非实体类,非实体类可以扩展实体类。实体类既可以是抽象的,也可以是具体的。

继承策略

有3种继承策略

  • 每个具体类策略的表
  • 加入子类策略
  • 单表策略

每个具体类策略的表

每个具体类继承映射策略的表基于为每个实体映射的单独表。每个类在数据库中都有自己的表,而实体类是从基类继承的。此策略的不同之处在于表在逻辑上没有分开。他们之间仍然存在着继承。

加入子类策略

联接表继承映射策略基于联接到基表的单独表。有些类是从基类继承的,数据表也有相同的方案,它们使用外键相互链接。

单表策略

JPA 映射具有称为继承映射的强大功能。它在 JPA 中的概念与 OOP 概念中的概念相似。表和映射是继承的基类或表。映射策略有 3 种类型,一种称为单表映射。

你可以在我的教程中看到所有这些的详细解释。请看看他们。

也可以看看

JPA 教程

休眠参考

于 2013-10-02T07:07:26.357 回答
2

我想我已经通过使用 @Any 或 @ManyToAny 注释找到了解决方案。这些不是标准的 JPA 注释,而是休眠特定的注释。

于 2013-10-03T17:45:39.520 回答