dowork方法問題,求大神解釋
doWork方法在這里就只是為了輸出HashCode?前面說doWork會自動執(zhí)行事務(wù),什么時候可以自動執(zhí)行事務(wù)!,而不要后面的一個transaction.commit();方法提交事務(wù)!
doWork方法在這里就只是為了輸出HashCode?前面說doWork會自動執(zhí)行事務(wù),什么時候可以自動執(zhí)行事務(wù)!,而不要后面的一個transaction.commit();方法提交事務(wù)!
2016-03-15
舉報
2016-03-15
問題1回答:這里的doWork確實是要得到HashCode,用來比較是否是兩個不同的連接(說明getCurrentSession是單例模式,而openSession每次都要占用不同的連接)。
問題2回答:這里Work()的excute方法里有Connection對象的參數(shù),可以通過:
session.doWork(new Work(){
public void execute(Connection Conn) throws SQLException {
// TODO Auto-generated method stub
Conn.setAutoCommit(true);
}
});
自動執(zhí)行事務(wù),這樣就不用transaction了。
2016-03-15
SessionFactory中有兩個獲取Session的方法,openSession()和getCurrentSession()。其中,getCurrentSession()方法在事務(wù)提交或回滾之后會自動關(guān)閉,openSession()需要手動關(guān)閉。事務(wù)需要提交,而是說doWork()可以避免調(diào)用了openSession()而忘記執(zhí)行session.close()。