每个子类的表映射策略:切换表



在每个具体的子类设置的表中,是否可以将行/对象从一个表切换到另一个表?这将如何运作?

例如,我们有一个基类 Person.java带有 pk person_id。然后我们有 2 个子类警察.java 和消防员.java这两个子类都由相应的表 PERSON 和 FIREFIGHTER 再次映射,主键person_id。

现在假设一名警察成为消防员或副手,这将如何工作?这可以在休眠中工作吗?有什么例子吗?

所有公共行在不同的表中必须相同。在该策略中,您必须复制行。我发现的唯一有趣的例子是在The Java Geek中。

根据Java EE 6教程,对这种策略的支持是可选的(他们说在Glassfish中不可用)。

多态性支持很差,因此您的用例将无法正确满足:在创建全新的消防员之前,您必须将警察从警察中移除。

我想如果您想在不同

实体之间的不同行之间切换,您将找不到另一种策略所需的内容:

  • 在连接子类策略中,所有公共字段都必须映射到基表中
  • 在"每个类的单个表层次结构策略"(指定不佳)中,将所有数据都放在带有鉴别器列的单个表中

最新更新