【发布时间】:2018-09-20 23:51:26
【问题描述】:
我想使用PlatformTransactionManager 和@Transactional 自己管理 mysql 事务,但它不起作用。另一方面,当我在 oracle 数据库上工作时,它可以根据我的要求有效地工作,但在 mysql 中无法控制交易。
还要关闭mysql自动提交默认设置为零,但仍然面临这个问题。
【问题讨论】:
-
发布您的代码..
-
MySQL 确保您使用的是实际支持事务的表类型。 MyISAM 不是事务性使用的 InnoDB。
-
这里是代码 /*@Transactional*/ public int insertIntoGmat(String message){ TransactionStatus statusT = utility.getTransaction().getTransaction(utility.getTransactionDef());诠释状态=0; status=utility.getJdbcTemplate().update("插入表(字段)值(?,?)",new Object[]{"Value"}); status=status=utility.getJdbcTemplate().update("插入表(字段)值(?,?)",new Object[]{"Value"});实用程序.getTransaction().rollback(statusT); System.out.println("状态["+状态+"]");返回状态;} 使用 Oracle 的相同代码工作
-
嘿伙计们,我找到了解决方案,我将 mysql 引擎从 MyISAM 更改为 InnoDB。现在它工作正常。有关 mysql 引擎的更多详细信息,请点击链接:-dev.mysql.com/doc/refman/5.7/en/storage-engines.html
标签: mysql spring-boot transactions spring-transactions autocommit