spring事务管理获取不到事务(transaction)的可能
2016-01-15 13:54
477 查看
1.使用的mysql引擎不支持事务.换成innoDB
2.spring声明式事务控制的aop 切入点设置不对.或者方法名没有匹配上
3.(重要)需要被spring事务控制的类,应该是implements一个接口,如果是extends一个类则无法创建事务
关于第三点如果有人知道如何解决请回复留言.
如果没法创建事务,则可以手动声明事务:
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); }
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法