JPA - EntityTransaction与事务
EntityTransaction 接口用來管理資源層實(shí)體管理器的事務(wù)操作,通過調(diào)用實(shí)體管理器的getTransaction方法 獲得其實(shí)例。
其常用方法如下:
① begin
用于啟動(dòng)一個(gè)事務(wù),此后的多個(gè)數(shù)據(jù)庫(kù)操作將作為整體被提交或撤消。
若這時(shí)事務(wù)已啟動(dòng)則會(huì)拋出 IllegalStateException 異常。
② commit
用于提交當(dāng)前事務(wù)。
即將事務(wù)啟動(dòng)以后的所有數(shù)據(jù)庫(kù)更新操作持久化至數(shù)據(jù)庫(kù)中。
③ rollback
撤消(回滾)當(dāng)前事務(wù)。
即撤消事務(wù)啟動(dòng)后的所有數(shù)據(jù)庫(kù)更新操作,從而不對(duì)數(shù)據(jù)庫(kù)產(chǎn)生影響。
④ setRollbackOnly
使當(dāng)前事務(wù)只能被撤消。
⑤ getRollbackOnly
查看當(dāng)前事務(wù)是否設(shè)置了只能撤消標(biāo)志。
⑥ isActive
查看當(dāng)前事務(wù)是否是活動(dòng)的。
如果返回true則不能調(diào)用begin方法,否則將拋出 IllegalStateException 異常。
如果返回 false 則不能調(diào)用 commit、rollback、setRollbackOnly 及 getRollbackOnly 方法,否則將拋出 IllegalStateException 異常。
示例如下:
? ? @Beforepublic void init(){entityManagerFactory = Persistence.createEntityManagerFactory("jpa-1");entityManager = entityManagerFactory.createEntityManager();//必須先獲取事務(wù)實(shí)例transaction = entityManager.getTransaction();//開啟事務(wù)transaction.begin();}@Afterpublic void destroy(){//提交事務(wù)transaction.commit();entityManager.close();entityManagerFactory.close();} 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的JPA - EntityTransaction与事务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Effective Java~37. 用
- 下一篇: 【itext学习之路】--6.将html