Pessoal bom dia,
Estou estudando CDI com EJB e JPA, WildFly minha dúvida é pq preciso colocar a anotação
@Transactional
public void remover(T t){
entityManager.remove(t);
}
Para que haja o commit??? Pelo que li a respeito, essa anotação é para apenas garantir a integridade de tudo aquilo que está dentro da transação…O que de certa forma é redundante. Mas não consegui ainda captar…
CDI @Transational
4 Respostas
O CDI não implementa transações, por isso você precisa da anotação @Transactional, que é parte da especificação JTA.
Redundante em que aspecto?
ué, mas se não implementa as transações, pq as consultas, os selects são executados? Redundante, pois o Banco de dados já garante a atomicidade das transações.
Mas estas transações não são as mesmas transações do banco de dados.
Você tem a atomicidade no banco de dados (depende do SGBD que usa, claro), mas, que garantias você tem que os dados que estão transitando no servidor estão íntegros?
É por esta razão que temos o JTA e é por isso que ele precisa ser utilizado.
Mas de quais transações estamos falando? Talvez, estejamos falando de coisas diferente. Eu me refiro a isso,por exemplo manager. find(Class.class, id), isto não seria uma transação?