Atitit Spring事务配置不起作用可能出现的问题: .是否是数据库引擎设置不对造成的【笔者就遇到了这个问题,由于笔者使用的是mysql数据,但是在创建表的时候引擎默认(mysql中引擎默认为
Atitit Spring事务配置不起作用可能出现的问题:
.是否是数据库引擎设置不对造成的【笔者就遇到了这个问题,由于笔者使用的是mysql数据,但是在创建表的时候引擎默认(mysql中引擎默认为MyISAM,是不支持事务操作的),需要修改为InnoDB,就可以支持事务操作了】
- 入口函数必须是public,否则事务不起作用。这一点由Spring的AOP特性决定的。
1、首先使用如下代码 确认你的bean 是代理对象吗?
AopUtils.isAopProxy()
AopUtils.isCglibProxy() //cglib
AopUtils.isJdkDynamicProxy() //jdk动态代理
如果不是 那么就是切入点配置出错了 或者如果你使用了springmvc,可能是context:component-scan重复扫描引起的:
UserService userService = context.getBean(UserService.class);
// 调用userService的方法执行
userService.test();
userService.addUser1(" user2222");
boolean isAopProxy=AopUtils.isAopProxy(userService);
boolean isCglibProxy=AopUtils.isCglibProxy(userService);
boolean isJdkDynamicProxy=AopUtils.isJdkDynamicProxy(userService);
Map m=Maps.newConcurrentMap();
m.put("isAopProxy", isAopProxy); m.put("isCglibProxy", isCglibProxy); m.put("isJdkDynamicProxy", isJdkDynamicProxy);
System.out.println(JSON.toJSONString(m));//{"isCglibProxy":true,"isAopProxy":true,"isJdkDynamicProxy":false}
2、如果是aop代理,那么说明代理成功,那么可能是如使用mysql且引擎是MyISAM造成的(因为不支持事务),改成InnoDB即可。
3、 如果你是基于类的代理,而非接口,如果想代理父类里的,可以用
execution(* com.sishuok.es..service..*+.*(..))
Spring事务不起作用 问题汇总 - 《亿级流量网站架构核心技术》_ - ITeye博客.html
是不是同一class没关系的。。只有一个service的俩个method都可以执行事务的。
阅读更多- 运行phpmyadmin的时候下方总是出现“wapm您配置文件中的设置 (空密码的 root) 与 MySQL 默认管理员账户对应。您的 MySQL 服务器使用默认值运行
- IDEA中创建ssh的时候,后边使用数据库来生成实体类和配置文件的时候出现了报错please choose persistence unit,添加不上
- 问题7:当使用jpa操作数据库的时候,插入数据到数据库使用主键自增策略时候报错:Springboot-jpa Table 'sell.hibernate_sequence' doesn't exist
- iBatis的AutoResultMap 默认配置使用时候出现的问题
- IOS——从头介绍数据库sqlite3的创建,使用及可能出现的问题
- 数据库的使用过程中由于程序方面的问题有时候会碰到重复数据,重复数据导致了数据库部分设置不能正确设置……
- 使用Spring配置事务时遇到的问题
- 使用事务实现--转账问题:从0001账户转1000块到0002账户。打开"隐式事务":设置为开,删除表中数据,回滚!(默认情况为关,如果打开了则不自动提交,学要手动提交)
- 使用spymemcached spring整合的时候遇到的一个配置问题
- 使用Sqoop将数据从Hive导入MySQL可能遇到的问题
- iBatis的AutoResultMap 默认配置使用时候出现的问题
- 事务特性,事务的隔离级别,并发事务可能出现的问题,spring事务 数据库锁
- 使用mysql可视化工具mysql-front的时候遇到软件过期问题
- Spring Security ACL使用MySQL配置与数据库脚本
- “超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。”问题的解决方法
- 关于使用CreateUserWinzard控件创建用户时出现连接数据库问题的解决方法
- QQ出现“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题”
- ASP.NET配置时候出现:选定的数据存储区出现问题
- 在VS2005下用C++写的程序,安装到另一台未安装VS2005的电脑上,结果出现如下的问题:““由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”。在我自己的机子上就能正常安装运行。查了一下网上的方法: 方法一: 在类似
- Spring 注解配置事务中所遇到的一点问题