@ Транзакционная аннотация на слое сервиса

У меня есть класс DAO, где у меня есть 2 метода с аннотацией Spring @Transactional аннотации, а именно:

public class ClassDAO {
    @Transactional
    public void save() throws Exception {

    }

    @Transactional
    public void save2() {

    }
}

Я хочу, чтобы эти 2 метода были частью одной и той же транзакции, поэтому, если какой-либо метод завершится неудачно, вся транзакция будет откатана.

Эти методы вызываются из уровня сервиса следующим образом: @Autowired private ClassDAO dao;

@Transactional
public void processDAO() {
    dao.save();
    dao.save2();
}

я использую @Transactional аннотации на уровне сервиса, так как я прочитал, это лучший подход, но с другой стороны, я прочитал @Transactional Атрибут работает только при вызове аннотированного метода для ссылки, полученной из applicationContext, поэтому, если это так, это объясняет, почему @Transactional аннотация не работает на сервисном уровне.

У меня есть один вопрос:

Если @TransactionaАтрибут l работает только при вызове аннотированного метода для ссылки, полученной из applicationContext, тогда как получается, что рекомендуется размещать аннотацию Transactional на сервисном уровне?

Спасибо и всего наилучшего.

0 ответов

Другие вопросы по тегам