hibernate的saveOrUpdate()方法
在WEB页面中得到一个对象有两种方法:
(1)从Session中取得对象,然后关闭Session,该对象便成为了脱管对象;
(2)直接new一个对象实例,它是临时对象.
然而对于上述的两种情况,有不同的处理方法,对于第一种情况
/*从Session中取Team对象*/
Team team = TeamDAO.getTeamById("2456721df4fdsf45");
Student student = new Student();
student.setName("ABC");
team.getStudent.add(student);
TeamDAO.update(team);
对于第二种情况
/*通过new.生成一个新的Team对象*/
Team team = new Team();
team.setTeamName("team1");
Student student = new Student();
Student student = new Student();
student.setName("ABC");
team.getStudent().add(student);
TeamDAO.save(student);
在实际的应用中,WEB程序员往往不会注意Team对象是脱管对象还是临时对象,
而对脱管对象save()操作是不对的,同样对临时对象update()操作也是错误的.
为了解决这个问题,便产生了saveOrUpdate()方法.
saveOrUpdate()方法兼具save()和update()方法的功能,对于传入的对象.saveOrUpdate()
方法首先会判断其是脱管对象还是临时对象,然后调用合适的方法
posted on 2007-08-26 18:05
Ke 阅读(2422)
评论(0) 编辑 收藏 所属分类:
hibernate