hibernate默認情況:
<property name="connection.release_mode">auto</property>--釋放jdbc resources 方式 如果不配置默認是auto (當然現在沒有auto了,等同于"after_statement" or "after_transaction"),
注意3.0以及之前默認是ON_CLOSE(也就是session關閉才釋放jdbc鏈接)
<property name="transaction.auto_close_session">false</property>--自動關閉session
<property name="connection.autocommit">false</property>--自動提交
release_mode的設置見于:
http://www.tkk7.com/freeman1984/archive/2011/07/27/355110.html1 首先connection.autocommit配置成false的情況:
此種情況需要手動開啟事務,需要手動開啟transaction,以及提交transaction,并且此時transaction.auto_close_session配置的配置將自動設置為false,所以此時如果connection.release_mode配置為on_close()時需要手動關閉session才能釋放JDBC 連接,日志會提示:
transaction completed on session with on_close connection release mode; be sure to close the session to release JDBC resources!
因此connection.autocommit為false的情況建議connection.release_mode采取默認auto。
2 connection.autocommit為true的情況,此時不需要手動開啟transaction以及提交transaction,hibernate自動開始transaction并在每次操作后提交transaction,設置此 時transaction.auto_close_session設置將自動為false。 如果connection.release_mode配置為on_close()是需要手動關閉session才能釋放JDBC 連接.建議此種情況connection.release_mode設置默認auto。
3 connection.autocommit為true的情況,如果此時又手動開啟了transaction,此時connection.autocommit將被設置為false(disabling autocommit),需要手動提交transaction,此種情況如同第一種情況。
有問題請補充。tks