我曾经为所有 Spring 服务(类)添加@Transactional
注释。然后我想:我真的必须这样做吗,如果交易行为应该是一样的?(当然,如果不应该,我们会@Transational
在方法中添加其他参数。)我试图找到一些关于继承的有用信息@Transactional
,阅读@Inherited
(它看起来像@Transactional
is @Inherited
)。我对以下示例进行了实验,它看起来rollbackFor
像是在为.noRollbackFor
@Transactional
GenericService
doSmthSpecific
@Transactional
public abstract class GenericService {
public void doSmthGeneric() {
}
}
public class SpecificService extends GenericService {
public void doSmthSpecific() {
}
}
如果GenericService
是接口,我认为它不起作用。我想这更像是“如果我错了,请纠正我”的问题,我想知道@Transactional
仅添加到超类是否真的可以,以及我是否在这里遗漏了一些东西。将不胜感激详细的解释(或此类解释的链接)。