Spring JdbcTemplate和@Transactional不刷新

时间:2019-01-25 18:03:10

标签: spring transactions jdbctemplate

我正在使用JdbcTemplate和带有@Transactional批注的方法来执行更新查询。该方法执行后,任何更改都不会持久保存到数据库中。 DataSource的{​​{1}}使用HikariCP,并且JdbcTemplate设置为autoCommit(遗憾的是无法更改)。

false

我想知道为什么该语句在执行后不持久?

1 个答案:

答案 0 :(得分:0)

我最终在应用程序中注入了默认的TransactionTemplate,这使我可以手动执行迁移:

class EsIndexer(
    private val jdbc: JdbcTemplate,
    private val tx: TransactionTemplate
) {

这样我可以执行:

internal fun updateVersions() {
   tx.execute {
      jdbc.update("UPDATE MIGRATION_LOG SET MAX_MIGRATION_ID = (SELECT MAX(ID) FROM MIGRATION)")
   }
}