2013-06-04 40 views
0

我使用Hibernate3.2的。我需要知道的是,在事務啓動後,hibernate會執行行級鎖。 Hibernate在啓動事務或提交事務後執行鎖定? Hibernate能夠鎖定表或行嗎?Hibernate事務將鎖定在我DAO層表(MySQL的)行

Session session1=HibernateSessionFactory.currentSession(); 
Transaction tran1=session1.beginTransaction(); 

TaskFolder folder=session1.load(TaskFolder.class,2); 

session.update(folder); 

tran1.commit(); 

是否有任何鎖定會發生在MySQL數據庫由於交易或不?

+0

我不知道了很多關於MySQL的,所以這只是猜測,但我要說的默認事務隔離級別是一個數據庫屬性。不過,如果鎖定了,它會在flush()發生時鎖定。這將取決於你的配置... – acdcjunior

回答

0

session.load()方法有一個重載的方法,它採用第三個參數,例如LockMode對象:load(TaskFolder.class, 2, LockMode.UPGRADE);。只要看看可能的鎖,然後選擇你需要的。