使用JPA的EntityManager.persist()方法無法保存到數據庫的問題

昨天用JPA時遇到一個小問題,entitymanager是通過@PersistContext方法注入的,使用entitymanager查詢對象沒有問題,但進行持久化時就無法保存數據到數據庫,程序也沒有拋出任何異常。瞎搗鼓了一天,總以爲是persistence.xml文件哪裏出問題,最後上網查資料,看到別人提到transaction-type中的JTA和RESOURCE_LOCAL的區別,纔想到自己在調用persis()方法之前沒有添加@Transactional標籤。 現在問題解決了,衷心的感謝百度谷歌以及在網上分享自己解決問題經驗的大牛和小牛們!

 

轉載:JTA和RESOURCE_LOCAL的區別就在於一個是聲明性事務管理,由容器來打理你添加了@TransactionAttribut(xxxx)註釋的EJB method過程,而另一個需要手動從EM中得到一個事務句柄並使用begin(),commit()之類編程性事務管理方式

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章