如何使spring AOP方法设置为事务不回滚? 15

我对一个处于事务中的DAO的方法(DAO方法注解为@Transactional(propagation=Propagation.SUPPORTED)进行AOP,在AOP方... 我对一个处于事务中的DAO的方法(DAO方法注解为@Transactional(propagation = Propagation.SUPPORTED)进行AOP,在AOP方法中的实现的是插入数据库某表一条数据。我希望达到的目的是:DAO方法不论是否回滚,AOP方法的插入操作不回滚。因此我在AOP方法前设置了@Transactional(propagation = Propagation.NOT_SUPPORT),但发现并不管用。如果DAO方法回滚,则AOP方法也回滚;如果DAO方法不回滚,则AOP方法也不回滚。请问,我的这个要求能否达到?谢谢! 展开
 我来答
1220zhuzhu
2013-10-10
知道答主
回答量:10
采纳率:0%
帮助的人:7.9万
展开全部
楼上两位说的都很对,你的方式是将AOP的切点设置在DAO层中,但如此事务必然会回滚你的DAO同时回滚你的AOP方法;
而你这样的需求应该将两个过程解耦,DAO应该处于最底层,将AOP的切点移到DAO层之上。
追问
谢谢 可是我的想法是 在数据库中建一张表记录所有CRUD的SQL语句,问题是处于DAO层之上的SERVICE层才是SQL语句被创造出的地方,我在SERVICE层上切面截取不到SQL,完成不了它的使命啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小伟程序设计
2013-10-10 · TA获得超过180个赞
知道小有建树答主
回答量:295
采纳率:0%
帮助的人:157万
展开全部
由于你的DAO方法设置了回滚, 而你AOP的切点又是处于DAO方法中, 即DAO包含了你的AOP切点 所以按我的理解 你的要求应该达不到
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友33dcad5a0
2013-10-10 · TA获得超过164个赞
知道答主
回答量:69
采纳率:100%
帮助的人:80.6万
展开全部
在程序中多加一层,比如叫“service”,用service的方法包装dao的方法,然后在service的方法上做aop。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式