使用 XML 的 Hibernate One to Many 示例

2024 年 8 月 29 日 | 阅读 3 分钟

如果持久类具有包含实体引用的列表对象,我们需要使用一对多关联来映射列表元素。

在这里,我们使用论坛的场景,一个问题有多个答案。

One to Many mapping in Hibernate by List

在这种情况下,一个问题可能有多个答案,并且每个答案可能有其自己的信息,这就是为什么我们在持久类(包含 Answer 类的引用)中使用列表来表示答案的集合。

让我们看看具有列表对象(包含 Answer 类对象)的持久类。

Answer 类有它自己的信息,例如 id、answername、postedBy 等。

Question 类具有包含实体引用(即 Answer 类对象)的列表对象。在这种情况下,我们需要使用列表的一对多来映射此对象。让我们看看如何映射它。


Hibernate 中使用 List 的 One to Many 映射的完整示例

在此示例中,我们将看到包含实体引用的列表的完整映射示例。

1) 创建持久类

这个持久化类定义了类的属性,包括 List。

Question.java

Answer.java


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

在这里,我们创建了 question.hbm.xml 文件来定义列表。


3) 创建配置文件

此文件包含有关数据库和映射文件的信息。


4) 创建类来存储数据

在这个类中,我们存储 question 类的数据。


输出

Hibernate One to Many Example 1 Hibernate One to Many Example 1

如何获取 List 的数据

在这里,我们使用 HQL 来获取 Question 类的所有记录,包括答案。在这种情况下,它会从两个功能相关的表中获取数据。在这里,我们直接打印 Answer 类的对象,但是我们已经重写了 Answer 类中的 toString() 方法,它返回 answername 和 poster name。因此,它打印答案名称和发布者名称,而不是引用 id。

FetchData.java


输出

Hibernate One to Many Example 3