您的位置:首页 > 编程语言 > Java开发

spring事务管理获取不到事务(transaction)的可能

2016-01-15 13:54 477 查看
1.使用的mysql引擎不支持事务.换成innoDB

2.spring声明式事务控制的aop 切入点设置不对.或者方法名没有匹配上

3.(重要)需要被spring事务控制的类,应该是implements一个接口,如果是extends一个类则无法创建事务

关于第三点如果有人知道如何解决请回复留言.

如果没法创建事务,则可以手动声明事务:

DataSourceTransactionManager transactionManager = (DataSourceTransactionManager) ctx
.getBean("transactionManager");
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW); // 事物离级别,开启新事务
TransactionStatus status = transactionManager.getTransaction(def); // 获得事务状态
try {
//逻辑代码
transactionManager.commit(status);
} catch (Exception e) {
transactionManager.rollback(status);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring 事务 mysql