我正在使用JdbcTemplate
和带有@Transactional
批注的方法来执行更新查询。该方法执行后,任何更改都不会持久保存到数据库中。 DataSource
的{{1}}使用HikariCP,并且JdbcTemplate
设置为autoCommit
(遗憾的是无法更改)。
false
我想知道为什么该语句在执行后不持久?
答案 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)")
}
}