使用 xml 文件的每个具体类表

24 Oct 2024 | 3 分钟阅读

对于 Table Per Concrete 类,数据库中将有三个表,它们之间没有任何关系。有两种方法可以使用 table per concrete class 策略映射表。

  • 通过 union-subclass 元素
  • 通过为每个类自行创建表
 

让我们了解一下我们要映射的层次结构。

table per concrete class

让我们看看如何通过 union-subclass 元素映射此层次结构

对于 table per concrete 类,数据库中将有三个表,每个表代表一个特定的类。
class 的 union-subclass 子元素指定子类。它将父表的列添加到此表中。换句话说,它就像一个 union。
 
每个表的表结构将如下所示

Employee 类的表结构

table per concrete class
 

Regular_Employee 类的表结构

table per concrete class
 

Contract_Employee 类的表结构

table per concrete class

Table per concrete 类的例子

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

1) 创建持久化类

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

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

2) 为持久类创建映射文件

上面已经讨论了层次结构的映射。

文件:employee.hbm.xml

3) 在配置文件中添加 hbm 文件的映射

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

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

文件: hibernate.cfg.xml

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


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

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

文件:StoreData.java