首先创建 Hibernate 映射文件 Person.hbm.xml,建立 Person.java 中各个字段和 PERSON 表中各个数据列的映射关系。
1. 如果未启动 JavaDB 数据库服务器,启动它。
2. 在 Projects 窗口的 Source Packages 下右键单击 travel 节点,在弹出的菜单中选择 New > Other ,打开 New File 向导。
3. 在 Categories 列表中选择 Hibernate,在 File Types 列表中选择 Hibernate Mapping File。单击 Next 按钮。
4. 在 file name 框内键入 Person.hbm,将 folder 设置为 src/java/travel。单击 Next 按钮。
5. 在 Class 框中键入用作映射的类 travel.Person 。
注意: 还有一种方法,单击 Browse 按钮,在 Find Type 对话框中键入 Person。
6. 在 Database Table 的下拉式列表中选择 PERSON。
注意: 如果 Database Table 的下拉列表是空的,很可能是因为数据库没有运行。在没有指定表的情况下可以继续创建文件,但是在 XML 文件中一定要指定表。
7. 单击 Finish 按钮。
单击 Finish 按钮,IDE 将创建一个 Person.hbm.xml 文件,此文件和 Person.java 文件位于相同目录下。在编辑器中打开该文件。默认情况下,XML 文件如下所示:
<hibernate-mapping>
<class dynamic-insert="false" dynamic-update="false" mutable="true"
name="travel.Person" optimistic-lock="version" polymorphism="implicit"
select-before-update="false" table="PERSON"/>
</hibernate-mapping>
注意:在创建文件时,如果不能选择下拉列表中的 PERSON 表,那么一定要在 class 元素中添加 table="PERSON" 。
8. 在 XML 编辑器中,做如下修改(粗体),设置 id 、属性和一对多的映射关系。
<hibernate-mapping>
<class dynamic-insert="false" dynamic-update="false"
mutable="true" name="travel.Person" optimistic-lock="version"
polymorphism="implicit" select-before-update="false" table="PERSON">
<id column="PERSONID" name="personId">
<generator class="increment"/>
</id>
<property column="NAME" name="name"/>
<property column="JOBTITLE" name="jobTitle"/>
<property column="FREQUENTFLYER" name="frequentFlyer"/>
<set cascade="all-delete-orphan" inverse="true" lazy="true" name="trips" table="TRIP">
<key column="PERSONID"/>
<one-to-many class="travel.Trip"/>
</set>
</class>
</hibernate-mapping>
在 XML 编辑器中,可以使用代码完成来帮助您添加属性和值。如果不能使用代码完成,如屏幕截图所示,请参阅下面的注意事项。
#
注意: 默认情况下,class 元素有一个 closing 标签。如果要在 class 元素的 opening 和 closing 标签之间增加属性元素,需要做以下修改。修改之后,就可以在 class 元素之间使用代码完成了。
<hibernate-mapping>
<class dynamic-insert="false" dynamic-update="false"
mutable="true" name="travel.Person" optimistic-lock="version"
polymorphism="implicit" select-before-update="false" table="PERSON">
</class>
</hibernate-mapping>
# 验证 XML 文件,修改所有验证错误,保存文件。