我打电话的时候:
entityManager.flush()
Run Code Online (Sandbox Code Playgroud)
我得到标题中提到的例外.
我正在使用Hibernate JPA.
Rom*_*man 17
在我自己遇到这个问题并花费几个小时试图解决它后,我终于找到了它的理由:Spring有一个错误,@Transactional如果同一个类有@Service自动装配方法的注释,则无法维护带有注释的事务.
一旦@Service注解是从所涉及的服务类,以及相应的Bean除去被宣布在XML配置:
<bean id="myService" class="com.example.myapp.service.MyServiceImpl" />
Run Code Online (Sandbox Code Playgroud)
问题消失了.
查看此JIRA错误以获取更多详细信息.
执行此语句时,请确保您有一个活动事务。如果您使用的是JPA,请使用EntityManager.getTransaction()。begin()。这是假设您在JTA事务范围之外使用JPA。
如果您在具有JTA支持的容器中运行应用程序,则还可以使用JTA UserTransaction来管理事务。
| 归档时间: |
|
| 查看次数: |
53900 次 |
| 最近记录: |