使用注解的每个子类表

2024年10月24日 | 阅读时长 2 分钟

正如我们之前指定的,对于子类策略表,表是根据持久化类创建的,但它们是使用主键和外键进行处理的。 因此,关系中不会有任何重复的列。

我们需要在父类中指定 @Inheritance(strategy=InheritanceType.JOINED),并在子类中使用 @PrimaryKeyJoinColumn 注解。

让我们看看我们将要映射的类层次结构。

table per subclass strategy

每个表的表结构将如下所示

Employee 类的表结构

table per subclass class
 

Regular_Employee 类的表结构

table per subclass class
 

Contract_Employee 类的表结构

table per subclass class

使用注解的子类表类的例子

在这个例子中,我们创建了三个类,并在 employee.hbm.xml 文件中提供了这些类的映射。

1) 创建持久化类

您需要创建表示继承的持久化类。 让我们为上面的层次结构创建三个类

文件:Employee.java
文件:Regular_Employee.java
文件:Contract_Employee.java

2) 在 pom.xml 文件中添加项目信息和配置。

打开 pom.xml 文件并单击“source”。现在,在 <dependencies>....</dependencies> 标签之间添加以下依赖项。


3) 创建配置文件

打开 hibernate.cgf.xml 文件,并添加映射资源条目,如下所示

现在,配置文件将如下所示

文件: hibernate.cfg.xml

定义了 hbm2ddl.auto 属性,用于在数据库中创建自动表。


3) 创建存储持久化对象的类

在这个类中,我们只是将员工对象存储在数据库中。

文件:StoreData.java


下一主题集合映射