[RESOLVIDO] @Transactional Spring

2 respostas
Thiago_Siqueira

Galera, tenho uma dúvida relacionada ao funcionamento do @Transactional do Spring.

Tenho 2 métodos: A e B. Os dois possuem a anotação @Transactional.
Minha dúvida é o seguinte:
O método A é chamado (cria-se a transação), e dentro desse método, é chamado o B. Nesse caso, é criada uma nova transação ou usa-se a mesma transação do método A?

2 Respostas

igor_ks

Por default é PROPAGATION_REQUIRED

Support a current transaction; create a new one if none exists. Analogous to the EJB transaction attribute of the same name.
This is typically the default setting of a transaction definition, and typically defines a transaction synchronization scope.

Ou seja, no seu caso, como o método B estará dentro da transação do método A, ele pegará a mesma transação. Caso queira que esteja em transação diferente aí terá que ser REQUIRES_NEW

EDIT:

Fonte:

Thiago_Siqueira

igor_ks:
Por default é PROPAGATION_REQUIRED

Support a current transaction; create a new one if none exists. Analogous to the EJB transaction attribute of the same name.
This is typically the default setting of a transaction definition, and typically defines a transaction synchronization scope.

Ou seja, no seu caso, como o método B estará dentro da transação do método A, ele pegará a mesma transação. Caso queira que esteja em transação diferente aí terá que ser REQUIRES_NEW

Muito obrigado Igor.

Criado 21 de novembro de 2013
Ultima resposta 21 de nov. de 2013
Respostas 2
Participantes 2