Controle de transação no Spring com a anotação @Transactional - Parte 2
Java, Spring Add commentsNo post passado apresentei algumas informações sobre o uso da anotação @Transactional. Neste vou mostrar alguns detalhes que fazem a dirença. Primeiro vamos supor que temos as interfaces:
@Transactional(propagation=Propagation.REQUIRED)
public interface Foo{
void fazAlgumaCoisa() throws FooException;
}
e uma interface que herda de Foo:
public interface Foo2 extends Foo{
void fazOutraCoisa() throws FooException;
}
Neste exemplo podemos chegar as concluções:
1° Que as transações são herdadas apenas para os métodos declarados na interface anotada.
2° Apenas exceções não verificadas gerarão rollback, ou seja, se um FooException for gerada a transação será efetivada. Para uma FooException resultar em rollback a anotação deve estar:
@Transactional(propagation=Propagation.REQUIRED, rollbackFor=FooException.class)
3° Toda implementação das interfaces acima, utilizarão as polÃticas transações definidas na interfaces, a menos que elas sejam sobrescritas, ou seja, incluindo a anotação @Transactional no método ou na classe.
Bom espero que tenha ajudado um pouco.
Comentarios recentes