Spring引导 - 数据库更改在作业完成之前不会反映出来

时间:2016-12-05 19:44:41

标签: database spring spring-boot

我正在使用Java 1.8使用Spring Boot和Maven编写批处理作业。数据库是Sybase ASE 当我尝试调试我的代码时,所有数据库语句(插入,更新等)似乎都在运行,但是在作业完成之前我无法找到数据库中的数据。 一旦查询完成,为什么数据库中没有可用的记录? 此外,如果作业失败/发生异常,则整个数据库事务不会存储在数据库中。

有人能解释Spring数据库事务的工作原理吗?

1 个答案:

答案 0 :(得分:1)

EntityManager在事务完成后刷新更改。在您无法查看数据库中的更改之前。

如果方法中存在@Transaction Annotation,请将其删除。但请注意,您不再拥有交易。您可以选择使用EntityManager.flush()。