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);