一对多关系配置
- 创建表
- 创建实体
one类
public class One{
private String teacher;
//放置多的一方类的集合
private set<Many> many=new Hashset<Many>();
}
many类
public class Many{
private String student;
//放置一的一方类的对象
private String teacher;
}
- 创建映射配置
one的映射
<set name=" Many " >
<key colum =" 外键名称 ">
<one-to-many class=“Many的全路径”>
</set>
many的映射
<many-to-one name="One" class="one的全路径" column=''外键名称">
多对多关系配置
1.创建表格(三张表,两个属性表,一个中间表)
- 创建实体类
many类
public class Many{
private Long many_id;
private String many_name;
private Set<Litter> litter=new HashSet<Litter>();
}
Litter类
public class Litter{
private Long litter_id;
private String litter_name;
private Set<Many> many= new HashSet<Many>();
}
- 配置映射文件
Many的映射
<set name="litter" table="中间表的名称">
<key column="Many对象对应中间表中外键的名称">
<many-to-many class="Litter类的全路径" column="Litter在中间表中的外键名">
</set>
Litter的映射
<set name="many" table="中间表的名称">
<key column="Litter对象对应中间表中外键的名称">
<many-to-many class="Many类的全路径" column="Many在中间表中的外键名">
</set>
级联操作
操作一个对象的时候,是否会同时操作其关联的对象
- 一对多的级联操作(保存操作)
使one的一方放弃外键维护权配置one.hbm.xml中配置cascade=“save-update” inverse=“true”
many则配置cascade=“save-update”