Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] @Transactional

Na aula 3, 09 Migrations com Flyway, o prof. menciona a anotação @Transactional, que pode ser importada a partir de dois pacotes, onde o professor diz para importar o do spring.

import org.springframework.transaction.annotation.Transactional;

ou

import jakarta.transaction.Transactional;

Qual a diferença? Funcionaria com qualquer um deles? Tem que ser o do Spring?

1 resposta
solução!

Olá Cleyton!

A diferença entre as duas anotações @Transactional que você mencionou está nos pacotes de onde elas são importadas e no contexto em que são geralmente usadas.

  1. org.springframework.transaction.annotation.Transactional: Esta é a anotação fornecida pelo Spring. Ela é amplamente utilizada em aplicações Spring para gerenciar transações declarativas. O Spring oferece um suporte robusto para transações, permitindo que você configure o comportamento transacional de maneira detalhada, como definir o nível de isolamento, o modo de propagação e os tipos de exceção que devem causar rollback.

  2. jakarta.transaction.Transactional: Esta anotação faz parte da especificação Jakarta EE (anteriormente Java EE) e é usada em ambientes que seguem essa especificação. Ela oferece funcionalidades básicas de transação, mas não é tão rica em recursos quanto a implementação do Spring.

No contexto de uma aplicação Spring Boot, é recomendado usar a anotação do Spring (org.springframework.transaction.annotation.Transactional) porque ela é mais integrada ao ecossistema Spring e oferece mais funcionalidades e flexibilidade. Além disso, ao seguir as práticas recomendadas do Spring, você garante que está utilizando todo o potencial que o framework oferece para o gerenciamento de transações.

Espero ter ajudado e bons estudos!