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

Gerenciamento de transação sem um servidor de aplicação

Olá pessoal.

Pelo que entendi pesquisando sobre o assunto de controle transacional:

Em ambientes gerenciados por um servidor de aplicação posso usar o JTA para gerenciar as transações do banco de dados, o servidor de aplicação será responsável por implementar o JTA. Quando tenho uma aplicação em Spring Boot que roda em um servlet container que não disponibiliza implementação do JTA, esse controle / implementação é feita pelo Spring baseado no JPA. Dúvida:

  • Aplicação simples com Hibernate rodando em um Tomcat: Uma transação onde não tem um servidor de aplicação oferecendo a implementação do JTA, e também não usamos controles de transação como o do Spring por exemplo. Quem realiza esse controle? É o Hibernate usando o JDBC no fundo? O Hibernate lida com um gerenciador de transações nesse caso usando o JDBC, e a transação JDBC é controlada pelo gerenciador de transações do banco de dados (SGBD)?

Obrigado.

1 resposta
solução!

Olá, Eduardo. Bom dia!! Então, sobre essa situação, você terá que implementar a JTA (Java Transaction API). Com ela, você terá que explicitar quando um método deve estar em um contexto transacional, usando a anotação @Transactional. Esse artigo aqui é excelente e cobre esse cenário: https://www.alura.com.br/artigos/jta-java-transaction-api