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()操作也是錯誤的.
為了解決這個問題,便產(chǎn)生了saveOrUpdate()方法.
saveOrUpdate()方法兼具save()和update()方法的功能,對于傳入的對象.saveOrUpdate()
方法首先會判斷其是脫管對象還是臨時對象,然后調(diào)用合適的方法
posted on 2007-08-26 18:05
Ke 閱讀(2426)
評論(0) 編輯 收藏 所屬分類:
hibernate