原因是service 没有加@transactional 注解
未加注解的情况下,出现异常的时候spring将不会回滚事物
一般情况下 只有对数据有增删改操作才具体加在具体的类方法上
原因是service 没有加@transactional 注解
未加注解的情况下,出现异常的时候spring将不会回滚事物
一般情况下 只有对数据有增删改操作才具体加在具体的类方法上
本文由 用户 于 2024-06-06 发布在 夸智网,如有疑问,请联系我们。
本文链接:https://www.kuazhi.com/post/1860.html
发表评论
2022-03-28 17:03:47回复
execution(* com.ciguo.service.*.*(..))
这种写法是扫描到service下一级*.java里面的方法,显然是找不到的,于是乎改成
execution(* com.ciguo.service.*.impl.*.*(..))
impl后面第一个 * 表示Java类,第二个 * 表示方法 这样子就能扫描到了,重启测试,
Creating a new SqlSession
Registering transaction synchronization for SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1827f65a]
2017-10-21 10:38:48,126 [http-bio-8088-exec-3] [com.alibaba.druid.pool.DruidDataSource]-[ERROR] testWhileIdle is true, validationQuery not set
2017-10-21 10:38:48,140 [http-bio-8088-exec-3] [com.alibaba.druid.pool.DruidDataSource]-[INFO] {dataSource-1} inited
JDBC Connection [ConnectionID:1 ClientConnectionId: a66941f8-3f93-4b13-9946-45de09c9b1d8] will be managed by Spring
SqlSession现在已经被spring管理了,事务也生效了
2022-03-28 17:02:07回复
ill not be managed by spring 和was not registered for synchronization because synchronization is not active
2022-03-28 17:01:30回复
请问各位,为什么会出现这样的情况?
问题一、为什么每次都Creating a new SqlSession,会不会影响性能?
问题二、明明配置了事务,确提示事务没有交给spring管理,求解。
2022-03-28 17:01:18回复
2022-03-28 17:00:47回复
今天使用mysql 的sql查询语句的时候(我是用的是ssm框架)
下面是我的查询语句,条件是根据business_id 和card_status 两个参数获取值
select * from tb_addCard where business_id = #{businessId,jdbcType=INTEGER} and card_status = #{cardStatus ,jdbcType=INTEGER}
在自己的sql测试里面完全是没有问题的,但是项目运行起来用postman测试时就报错,然后采用log4j打印出来也是报错:
will not be managed by Spring
这个是其中的一个错误信息,配置文件啥的肯定是没有问题的,网上是说加@Transactional注解,或者是aop配置出错
但是自己别的都可以测试出来结果,绝对不是配置问题。这个我们就不说了。
There is no getter for xxx
这个报错的时候,我们往往不会出现我们的实体类中没有生成get,set方法,毕竟我们采用的是自动生成工具生成的,但是就是报这个错误了,很纳闷,网上找了很多但都是找不到自己需要的,后来我就把sql语句修改成了
select * from tb_addCard where business_id = #{0} and card_status = #{1}
运行起来就正常了,这其中的原理我觉得应该相当于一个角标的提示,现在我也没完全明白为啥,知道的朋友麻烦告知。
网上也有说把#{xxx}修改为 #{_parameter} 但是我试了这种情况下使用这个也是没有效果。