日期:2014-05-18  浏览次数:20656 次

hibernate级联保存,如果表中有这条记录会把这条记录修改,但是不级联保存提示违反约束
两张表teacher 和 course

级联保存的时候如果teacher里有id为't22'的记录,如果在插入一条't22'不报错,会把't22'修改

但是不级联,单独save一个id为't22'的记录的话会提示违反约束。为什么呀
public void insert(){
System.out.println("插入的是insert");
Session session = sessionFactory.openSession();
Transaction tr = session.beginTransaction();
Teacher tea = new Teacher("t22", "老师222");
Course cou = new Course("c22", "课程", tea);
tea.getCourseSet().add(cou);
session.save(cou);
tr.commit();
session.close();
}

方法调用之后数据库多了两条记录,把课程中'c22'记录从数据库删掉,老师't22'留下,在调用这个方法数据库有id为't22'的老师但是还是能插入,不报错,但是如果
public void insertTeacher(){
System.out.println("插入的是Teacher");
Session session = sessionFactory.openSession();
Transaction tr = session.beginTransaction();
Teacher tea = new Teacher("t22", "老师222");
session.save(tea);
tr.commit();
session.close();
}
这样就会报错,为什么呀

------解决方案--------------------
你既然级联了就要两个一起