组合映射
component是组合映射的关键字,用法和property相似,但是又与property有极大的不同,因为它可以糅合两个持久到一个配置文件当中(当然该配置文件处于控制类文件下)
其实:组合映射就是把两个持久类糅合成一张数据表而已
例如:我们模拟需求:一辆奔驰汽车由四个轮子组装成
代码
Car持久类
private int id;
private String name;
private Wheel w;
wheel类
private int w_id;//组件类的属性不能和控制类的属性一样
private String w_name;
private int w_num;
配置文件
<class name="Car" table="Car">
<id name="id" column="id">
<generator class="native"/>
</id>
<property name="name" column="name"></property><!--
此处高能区:组件标签的出现代表该控制类为组件控制类,组件标签下的class即是组件类
--><component name="w" class="Wheel">
<property name="w_id" type="integer"></property>
<property name="w_name" type="string"></property>
<property name="w_num" type="integer"></property>
</component>
</class>
运行类
Wheel w = new Wheel();
w.setW_name("新东方");
w.setW_num(4);
w.setW_id(1);
Car c = new Car();
c.setName("奔驰");
c.setW(w);
session.save(c);
component是组合映射的关键字,用法和property相似,但是又与property有极大的不同,因为它可以糅合两个持久到一个配置文件当中(当然该配置文件处于控制类文件下)
其实:组合映射就是把两个持久类糅合成一张数据表而已
例如:我们模拟需求:一辆奔驰汽车由四个轮子组装成
代码
Car持久类
private int id;
private String name;
private Wheel w;
wheel类
private int w_id;//组件类的属性不能和控制类的属性一样
private String w_name;
private int w_num;
配置文件
<class name="Car" table="Car">
<id name="id" column="id">
<generator class="native"/>
</id>
<property name="name" column="name"></property><!--
此处高能区:组件标签的出现代表该控制类为组件控制类,组件标签下的class即是组件类
--><component name="w" class="Wheel">
<property name="w_id" type="integer"></property>
<property name="w_name" type="string"></property>
<property name="w_num" type="integer"></property>
</component>
</class>
运行类
Wheel w = new Wheel();
w.setW_name("新东方");
w.setW_num(4);
w.setW_id(1);
Car c = new Car();
c.setName("奔驰");
c.setW(w);
session.save(c);
tx.commit();