2.1 搭建:
1>在表中 外键 (没有改变)
2>实体中 关系属性(减掉一个关系属性)
2.2 映射:减掉了一个关系属性的映射,去掉了inverse="true"
<class name="User" table="user40">
<id name="id" type="java.lang.Integer">
<generator class="increment"></generator>
</id>
<property name="username" type="java.lang.String"></property>
<property name="password" type="java.lang.String"></property>
<!--
关系属性:orders
1.关系属性名
2.关系对方
3.关系中的外键
4.级联
inverse="true" 告知当前方 不要维护外键
在单向关系中此配置不需要,或者inverse="false"
需要当前方取维护外键
-->
<set name="orders" cascade="save-update,delete" inverse="false">
<!-- 映射关系中的外键列 -->
<key column="user_id"></key>
<one-to-many class="Order"></one-to-many>
</set>
</class>
<class name="Order" table="t_order40">
<id name="id" type="java.lang.Integer">
<generator class="increment"></generator>
</id>
<property name="price" type="java.lang.Integer"></property>
</class>
2.3 使用:
在单独插入从表时:
//获取主表数据
User user=(User)session.get(User.class,10);
//创建从表数据
Order order1=new Order(null, 400);
//维护关系
user.getOrders().add(order1);//告知User,order1是属于他的订单
//插入
session.save(order1);