在上一篇中,如果epy.setDpt(dpt);这行代码注释掉,即不设置对象关系中部门与员工的关系,Hibernate插入数据时还是会插入两条记录,不过员工的部门编号为null,一般来说外键都是有非空约束的,在映射文件中做如下修改:
Employee.hbm.xml
这个样子就可以了,那么如果设置非空,即使在一个事务中,也只能先保存部门,再保存员工,如果先保存员工,那么就会违反外键非空的约束。
在上一篇中,如果epy.setDpt(dpt);这行代码注释掉,即不设置对象关系中部门与员工的关系,Hibernate插入数据时还是会插入两条记录,不过员工的部门编号为null,一般来说外键都是有非空约束的,在映射文件中做如下修改:
Employee.hbm.xml
这个样子就可以了,那么如果设置非空,即使在一个事务中,也只能先保存部门,再保存员工,如果先保存员工,那么就会违反外键非空的约束。