javax.persistence.TransactionRequiredException的原因是什么:没有事务正在进行中

时间:2012-10-24 18:59:32

标签: java spring hibernate jpa

的原因是什么?
javax.persistence.TransactionRequiredException: no transaction is in progress  at org.hibernate.ejb.AbstractEntityManagerImpl.flush(AbstractEntityManagerImpl.java:971)

即使在

之后
    applicationLtext中的
  • <tx:annotation-driven/>

  • 使用@Transactional

  • 注释的方法

在Spring 3.1.1 + Hibernate 4.1中

1 个答案:

答案 0 :(得分:0)

您必须使用交易包围调用代码。在Spring中,您可以使用@Transactional注释或AOP事务划分。这是一个非常广泛的主题,从官方文档中的11. Transaction Management开始。

对于初学者来说,定义JPA事务管理器bean(可能你已经有了),添加<tx:annotation-driven/>并使用@Transactional注释你的方法。