这是代码段。
public class A{
public void m1(){
//Do some stuff
m2();
}
@Transactional
private m2(){
// Some DB operations
}
}
在上面的代码中, @Transactional 不起作用。
有没有一种方法可以仅在私有方法上创建 @Transactional (而不是在公共方法上)?
有人可以帮忙吗?
答案 0 :(得分:0)
将@Transactional
保留在私有方法上是没有目的的,因为该方法最终在类本身中被调用。因此代理永远不会应用于该方法。
使用代理时,应应用
@Transactional
批注 仅适用于具有公众知名度的方法。如果您做受保护的注释, 带有@Transactional
批注的私有或程序包可见方法, 不会引发任何错误,但是带注释的方法不会显示 配置的交易设置。