我有一个 DAO 类,其中我有 2 个用 Spring@Transactional
注释注释的方法,如下所示:
public class ClassDAO {
@Transactional
public void save() throws Exception {
}
@Transactional
public void save2() {
}
}
我希望这两种方法成为同一个事务的一部分,所以如果任何方法失败,整个事务都会回滚。
这些方法是从服务层调用的,如下: @Autowired private ClassDAO dao;
@Transactional
public void processDAO() {
dao.save();
dao.save2();
}
我@Transactional
在服务层上使用注释,因为我读过这是最好的方法,但另一方面,我读过的@Transactional
属性只有在从 applicationContext 获得的引用上调用带注释的方法时才有效,所以如果这是真的,那将解释为什么@Transactional
注释在服务层上不起作用。
我有一个问题:
如果@Transactiona
l 属性仅在从 applicationContext 获得的引用上调用带注释的方法时才有效,那么将 Transactional 注释放在服务层上是一种好的做法吗?
谢谢和最好的问候。