@Transactional
Entendendo
Transação
Cenário

Passos
1. Verifica se tem assento disponível

Passos
2. Ocupa assento

Passos
3. Pagamento do ticket do cinema
Passos
4. Entrega do ticket do cinema






TRANSAÇÃO

Software
+ Seguro
-Inconsistência
Transação em 4 palavras
ATOMICO
CONSISTÊNTE
ISOLADA
DURÁVEL
ACID
Formas de trabalhar
Programática vs Declarável
Title Text

@Transactional
@Transactinal
public class Atividade{
public void atividade1(){...}
public void atividade2(){...}
public void atividade3(){...}
}@Transactional
@Transactinal
public class Atividade{
public void atividade1(){...}
public void atividade2(){...}
public void atividade3(){...}
}@Transactional
PARAMETROS
-
ISOLATION.:
-
PROPAGATION.:
-
TIMEOUT.:
-
READ-ONLY.:
@Transactional(readOnly=true )
public void atividade1(){...}
@Transactional(timeout=0)
public void atividade1(){...}
@Transactional(propagation=Propagation.REQUIRED)
public void atividade1(){...}
@Transactional(isolation=Isolation.Default)
public void atividade1(){...}
PARAMETROS
Exemplo
Subtitle
@Autowarid
private PagamentoHelper pagamentoHelper;
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public void send(final Collection<OcorrenciaAgendamento> ocorrencias) throws Exception {
for(Ocorrencia ocorrencia : ocorrencias){
pagamentoHelper.gerarPagamento(ocorrencia)
}
}Exemplo
Subtitle
public class PagamentoHelper {
@Transactional(propagation = Propagation.REQUIRED_NEWS)
public void gerarPagamento(Ocorrencia ocorrencia){
{...}
}
}
Exemplo
Illegal attempt to associate a collection with
two open sessionObrigado!
Referências

http://docs.spring.io/spring/docs/4.2.2.BUILD-SNAPSHOT/javadoc-api//org/springframework/transaction/annotation/Transactional.html
http://www.devmedia.com.br/conheca-o-spring-transactional-annotations/32472
@Transactional
By Eric Guilherme
@Transactional
- 342

