2008-12-02 41 views
6

我有一个当前使用Hibernate映射为数据库表中实体的类。这个类应该被重构成一个抽象类,它包含一些对其所有子类都通用的字段。将Hibernate实体重构为子类

我使用注释映射休眠实体/关系类。

我想建议/变种如何做到这一点重构。

另外,关于如何将存储在数据库(用于将来的抽象超类)中的数据移动到具体子类之一中的一些建议。

回答

9

首先,我将创建超类并添加必要的注释。你必须做出抉择:每类策略

  • 每类单表层次战略
  • 连接子类策略

我想连接子类将在这里工作。您添加注释:

@Entity 
@Inheritance(strategy=InheritanceType.JOINED) 

给超类。

其次,我将创建代表子类的表。请记住,这些只有子类唯一的列,共享的列将保留在超类中。然后选择属于每个子类的超类'表中的行并移动数据。

我不确定您是否在寻找更具体的东西?这个article解释了Hibernate的继承。

+0

链接似乎被破坏。 对于JBoss文档:http://docs.jboss.org/hibernate/stable/annotations/reference/en/html_single/#d0e1168 – rpr 2010-05-06 11:08:19

相关问题