5.session的主要方法
5.1 save(),persist()保存數據,persist在事務外不會產生insert語句.
5.2 delete(),刪除對象.
5.3 update(),更新對象,若數據庫中沒有記錄,會出現異常.
5.4 get,根據ID查,會立刻訪問數據庫
5.5load,根據ID查,(返回的是代理,不會立即訪問數據庫)
5.6 saveOrupdate,merger(根據ID和version的值來確定是save或update),調用merger你的對象還是脫管的.
5.7 lock(把對象變成持久對象,但不會同步對象的狀態).
Unicorn unicorn = (Unicorn)session.get(Unicorn.class, id);
Unicorn u1 = (Unicorn)session.load(Unicorn.class, 2);
可以這樣理解:由于Session可以管理多個數據庫表所對應的多個實體對象,如果要查詢id為1的實體對象,Session.get方法需要知道去從哪個數據庫表中查詢id為1的記錄,所以,除了給get方法傳遞要查詢的實體對象的id值外,還必須給get方法傳遞實體對象的類型,get方法才知道去哪個數據庫表中進行查詢
#:get和load的區別,load返回的對象永遠不會是空,即使數據庫不存在那條紀錄.
#save()和persis()方法區別:當沒開啟事務時: save方法會先插入數據,再回滾;而persis方法是不會插入數據的;