【发布时间】:2016-04-26 10:29:06
【问题描述】:
当 Spring Batch 尝试提交记录时,我收到 Commit failed while step execution data has been updated 错误。任何帮助将不胜感激。 我正在使用 HIbernate JPA。
它适用于较少数量的记录。记录数高时抛出错误。
堆栈跟踪:
2016-01-20 08:49:45 INFO TaskletStep:359 - Commit failed while step execution data was already updated. Reverting to old version.
2016-01-20 08:49:45 ERROR TaskletStep:370 - Rolling back with transaction in unknown state
2016-01-20 08:49:45 ERROR AbstractStep:225 - Encountered an error executing step uploadFiles in job fileUploadJob
org.springframework.transaction.TransactionSystemException: Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Transaction marked as rollbackOnly
at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:524)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:757)
at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:726)
【问题讨论】:
-
你有没有用@Transactional 标记的组件?通常是交易问题的根源
-
感谢您的回复。我的代码中的任何地方都没有@Transactional。当我将提交间隔设置为 1 时它正在工作。如果我设置为 100 或 1000 或 10000 则失败。
标签: java jpa spring-boot spring-batch