[英]Why doesn't openSession work but getCurrentSession works in Spring Hibernate
[英]Hibernate + Spring openSession in Transaction
我有這個代碼,我有一個問題:
@Service
class SimpleServiceImpl implements SimpleService{
@PersistenceContext
private EntityManager em;
@Transactional
public void doSmth(){
// here I want to have a new session
Session session = em.unwrap(Session.class).getSessionFactory().openSession();
// do smth in new session
session.close();
}
交易怎么樣? 實際上,據我了解,如果我打開會話,我必須明確管理此會話,我必須關閉它。 但是交易發生了什么? 我是應該開始一個新的交易並自己管理它還是我的行動繼續在同一個交易中開始的方法是什么?
您已使用@Transactional注釋,這就是Spring將使用AOP概念處理事務的原因。
如果使用Transactional注釋,則您的方法將在一個事務中完成。
有關更多信息,您還可以檢查: spring transactional后台會發生什么 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.