Transactions Spring批处理中的显式提交

Transactions Spring批处理中的显式提交,transactions,commit,spring-batch,explicit,Transactions,Commit,Spring Batch,Explicit,我正在使用SpringBatch,hibernate作为数据访问层。 我的工作有三个步骤。在最后一步中,我需要在ItemWriter中执行显式提交(flush),因为我必须读取一个数据库视图,该视图之前需要保存特定的数据 我设置了一个特定的jtatransactionmanager,当执行开始时,在第一步中,它捕获了一个异常: org.springframework.transaction.TransactionSystemException: Could not commit JDBC tra

我正在使用SpringBatch,hibernate作为数据访问层。 我的工作有三个步骤。在最后一步中,我需要在ItemWriter中执行显式提交(flush),因为我必须读取一个数据库视图,该视图之前需要保存特定的数据

我设置了一个特定的jtatransactionmanager,当执行开始时,在第一步中,它捕获了一个异常:

org.springframework.transaction.TransactionSystemException: Could not commit JDBC transaction; nested exception is java.sql.SQLException: You cannot commit during a managed transaction!

thank’s Prevent

提交发生在区块之后,请参见,这是实现安全回滚和重试场景的强制行为,您能否提供有关批处理操作和特定写入程序的更多信息?在最后一步中,特定的编写器执行以下操作:1)调用将行插入数据库的组件,并执行显式hibernate刷新。2) 读取由先前插入的行创建的数据库视图(3)实现业务逻辑。4) 将数据结果插入数据库。但是,这个过程在第一步就出错了。