0

我有一个 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注释在服务层上不起作用。

我有一个问题:

如果@Transactional 属性仅在从 applicationContext 获得的引用上调用带注释的方法时才有效,那么将 Transactional 注释放在服务层上是一种好的做法吗?

谢谢和最好的问候。

4

0 回答 0