使用hibernate的Cascade的一点经验

来源:互联网 发布:js apend 编辑:程序博客网 时间:2024/06/04 20:15

当在HBM文件中配置
<many-to-one name="teacher" column="teacher_id" cascade="save-update"></many-to-one> 

 

这是的关系是一个教师有多个试卷的关系,当我们新增一个教师的时候,不需要知道教师有什么试卷,但是,反过来,当新增一个试卷的时候,不需要指定相应的教师

   t=(Teacher)teacherdao.findById(t.getId(), false);
   paper.setTeacher(t);
   TestPaperDAO paperdao=(TestPaperDAO)DAOFactory.getDao(TestPaperDAO.class);
   paperdao.makePersistent(paper);

 

 从上述代码看到,我们通过paper.setTeacher(t)的方法,指定了新增加试卷的教师,但是,为了维护关系,还应该有这样的代码:t.getTestPaper().add(paper), 可这里为什么没有呢,就是因为在many设置了cascade="save-update" ,hibernate会自动去更新teacher方