中断正在运行的spring mybatis事务
spring和mybatis是否可以中断正在执行的mybatis数据库事务 例如: 我有一个将数千条记录插入oracle SQL数据库的应用程序。这大约需要5分钟。如果用户在插入记录时按下“停止”按钮,我希望停止数据库事务并回滚更改 一旦数据库过程完成,我可以使用事务管理器回滚事务:中断正在运行的spring mybatis事务,spring,transactions,interrupt,mybatis,spring-transactions,Spring,Transactions,Interrupt,Mybatis,Spring Transactions,spring和mybatis是否可以中断正在执行的mybatis数据库事务 例如: 我有一个将数千条记录插入oracle SQL数据库的应用程序。这大约需要5分钟。如果用户在插入记录时按下“停止”按钮,我希望停止数据库事务并回滚更改 一旦数据库过程完成,我可以使用事务管理器回滚事务: TransactionStatus status = txManager.getTransaction(def); txManager.rollback(status) 但我无法在事务运行时中断它 在JDBC中,
TransactionStatus status = txManager.getTransaction(def);
txManager.rollback(status)
但我无法在事务运行时中断它
在JDBC中,我只需执行:PreparedStatement.cancel()
我曾试图在MyBatis中获得这份准备好的声明,但我认为这是不可能的
有人能解决这个问题吗?我认为您可以从会话工厂获取当前会话,然后调用session.cancelQuery(),我认为inturn可以使用db调用来取消查询执行 根据hibernate文档,它是线程安全的 取消当前查询的执行。这是唯一的方法 可以从另一个线程安全调用的会话
我也找不到办法。这将是一个很好的增强。我在我的项目中使用myBatis而不是Hibernate,但无论如何我都感谢您的帮助我没有使用myBatis,但我认为您仍然可以通过获取当前打开的连接/会话来使用此解决方案,然后按方面取消查询。