1. Verifica se tem assento disponível
2. Ocupa assento
3. Pagamento do ticket do cinema
4. Entrega do ticket do cinema
TRANSAÇÃO
@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
@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(){...}
@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)
}
}
public class PagamentoHelper {
@Transactional(propagation = Propagation.REQUIRED_NEWS)
public void gerarPagamento(Ocorrencia ocorrencia){
{...}
}
}
Illegal attempt to associate a collection with
two open sessionhttp://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