溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Hibernate JDBC事務(wù)是什么

發(fā)布時(shí)間:2021-12-04 16:32:32 來源:億速云 閱讀:125 作者:iii 欄目:編程語言

這篇文章主要介紹“Hibernate JDBC事務(wù)是什么”,在日常操作中,相信很多人在Hibernate JDBC事務(wù)是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對(duì)大家解答”Hibernate JDBC事務(wù)是什么”的疑惑有所幫助!接下來,請(qǐng)跟著小編一起來學(xué)習(xí)吧!

Hibernate類的initialize()方法

initialize()方法強(qiáng)制Hibernate立即加載指定實(shí)體所關(guān)聯(lián)的對(duì)象和集合。Hibernate類中還有其他幾個(gè)很有用但不適很常用的方法。

映射文件中的lazy屬性

在Hibernate3中,class元素的lazy屬性默認(rèn)是true,如果不需要,則需要顯示指定為lazy="false",否則,操作load返回的對(duì)象會(huì)拋異常。另外Hibernate3中還可以為實(shí)體屬性指定lazy屬性。

Hibernate JDBC事務(wù)和JTA事務(wù)

Hibernate本身沒有事務(wù)管理功能,它依賴于JDBC或JTA的事務(wù)管理功能,在Hibernate配置文件中,如果不顯式指定Transaction的工廠類別屬性hibernate.transaction.factory_class的配置,則默認(rèn)為JDBC事務(wù):

  1. <property name="hibernate.transaction.factory_class">
    org.hibernate.transaction.JDBCTransactionFactory</property> 

在通過SessionFactory獲取到Session后,與Session相關(guān)聯(lián)的JDBC Connection實(shí)例就被設(shè)定為false。

特別注意:如果數(shù)據(jù)庫不支持事務(wù),比如MySQL的MyISAM引擎的表就不支持事務(wù),聲明事務(wù)也不會(huì)起作用。要使MySQL5的表支持事務(wù),則可以指定表的引擎類型為InnoDB。如果是學(xué)習(xí)或者研究,目前***還是使用PostgreSQL 8.3或DB2、Oracle。

Hibernate JDBC事務(wù)總是和一個(gè)數(shù)據(jù)庫連接(或一個(gè)Session)相關(guān)聯(lián)的。
JTA事務(wù)則可以跨越多個(gè)數(shù)據(jù)連接(或多個(gè)Session),這些連接還可以是不同數(shù)據(jù)庫的連接,JTA事務(wù)一般由容器進(jìn)行管理。編程只要在多個(gè)操作單元的開始和結(jié)束定義JTA事務(wù)的邊界即可。

特別注意:如果使用了JTA事務(wù),則不能再用在JDBC式的事務(wù)來管理每個(gè)Session的操作,否則會(huì)出錯(cuò)。為了程序的的通用性,一般來說,都是使用Hibernate JTA事務(wù)來構(gòu)建應(yīng)用,這使用任何環(huán)境。當(dāng)然,也可以使用事務(wù)代理為每個(gè)JDBC的操作方法加入事務(wù)控制。這樣也為程序以后移植到JTA容器事務(wù)上帶來很大方便。其實(shí)現(xiàn)在可以使用Spring的事務(wù)管理,與Hibernate結(jié)合的非常***。

到此,關(guān)于“Hibernate JDBC事務(wù)是什么”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI