JPA entityManager不保存数据,flush抛出"no transaction in progress"异常。

26 浏览
0 Comments

JPA entityManager不保存数据,flush抛出"no transaction in progress"异常。

我无法解决以下问题。我的Spring + JPA + Hibernate + Oracle DB应用程序可以正确地从数据库中读取数据,但无法保存它们。我在互联网上(包括这个论坛)搜索到了类似的问题,但是很遗憾在我的代码中无法修复它。

其中一个想法是在调用persist()方法后添加entityManager.flush(),但是然后我得到了一个异常javax.persistence.TransactionRequiredException: no transaction is in progress。

最开始我在我的repository类中使用的是EntityManagerFactory,但是根据不同的评论,我将其迁移到使用带有@PersistenceContext注解的EntityManager。

我将非常感谢任何帮助。

以下是我的代码:

pom.xml:

Job.java:

JobRepository.java:

JobRepositoryImpl.java:

application-config.xml:

repositories-impl-config.xml:

JobRepositoryTest.java:

控制台输出:

0
0 Comments

JPA entityManager无法保存数据,flush方法抛出“no transaction in progress”异常的原因是没有启动事务。解决方法是不调用flush方法。以下是解决方法的具体内容:

参考链接:stackoverflow.com/questions/5372859/…

我遇到了同样的异常。我简单的解决方法是不调用flush方法。在这之后,我就能够保存到SQL Server数据库了。这不是一个理想的解决方案。进一步的信息将在深入研究后提供。

0