在事务中使用Hibernate + Spring openSession

时间:2015-03-05 11:17:26

标签: java hibernate

我有这个代码,我有一个问题:

@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();
}

交易怎么样?实际上,据我了解,如果我打开会话,我必须明确管理此会话,我必须关闭它。但是交易发生了什么?我是应该开始一个新的交易并自己管理它还是我的行动继续在同一个交易中开始的方法是什么?

2 个答案:

答案 0 :(得分:0)

您已使用@Transactional注释了Spring将使用AOP概念处理事务的原因。

答案 1 :(得分:0)

如果您使用Transactional注释,您的方法将在一个事务中完成。

有关详细信息,您还可以查看:spring transactional what happens in background