下面的映射文件包含了一对多关联的配置,请分析代码并回答后面的问题。 Customer.hbm.xml: 1 <?xml version="1.0"?> 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "https://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 3 <hibernate-mapping package="PO"> 4 <class name="Customer" table="customer"> 5 <id column="ID" name="id" type="integer"> 6 <generator class="identity"/> 7 </id> 8 <property name="cname" column="CNAME" type="string"/> 9 <property name="phone" column="PHONE" type="string"/> 10 <set name="orders" table="orders " cascade="all" inverse="true" lazy="false" sort=" natural " > 11 <key column="CUSTOMER_ID"/> 12 <one-to-many class="PO.Orders"/> 13 </set> 14 </class> 15 </hibernate-mapping> (1)该映射文件定义的持久化类是什么?该持久化类对应的表名是什么?该类的主键生成机制是什么?该主键生成机制表示由数据库还是应用程序来生成主键值? (2)该映射文件定义了哪两个持久化类之间的一对多的关联关系? (3)该映射文件定义了什么情况下可以级联? (4)该映射文件定义的持久化对象的加载方式是什么?
时间: 2023-10-21 18:05:33 浏览: 82
hibernate映射文件配置分析及要点
1. 该映射文件定义的持久化类是 `Customer`,对应的表名是 `customer`。该类的主键生成机制是 `identity`,表示由数据库来生成主键值。
2. 该映射文件定义了 `Customer` 和 `Orders` 之间的一对多的关联关系。其中 `Customer` 为一方,`Orders` 为多方。
3. 该映射文件定义了当 `Customer` 对象被删除时,级联删除其拥有的所有 `Orders` 对象。
4. 该映射文件定义的持久化对象的加载方式是立即加载,即 `lazy="false"`。也就是说,在加载 `Customer` 对象时,其关联的 `Orders` 对象也会被同时加载。
阅读全文