Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Aula 9 - Controle de Transações com Interceptors

Pessoa, não estou conseguindo adicionar, nem remover os produtos, depois que passe a fazer o begin e o commit Estou fazendo da seguinte maneira

package br.com.caelum.vraptor.interceptor;

import javax.inject.Inject;
import javax.persistence.EntityManager;

import br.com.caelum.vraptor.AroundCall;
import br.com.caelum.vraptor.Intercepts;

@Intercepts
public class ControleDeTransacaoInterceptor {

    private final EntityManager em;

    @Inject
    public ControleDeTransacaoInterceptor(EntityManager em) {
        this.em = em;
    }

    @Deprecated
    public ControleDeTransacaoInterceptor() {
        this(null);
    }

    @AroundCall
    public void intercepta(SimpleInterceptorStack stack) {
        em.getTransaction().begin();
        stack.next();
        em.getTransaction().commit();
    }
}

Já tentei com o Before e After Call também, mas sem resultados....

Assim como eu vi no vídeo e nas explicações ele não fazia nada na classe ProdutoDao, além de remover o em.getTransaction.begin() e o em.getTransaction.remove()

2 respostas

Oi Naldson, tudo bem?

O código do Interceptor parece correto. Colei ele aqui na minha aplicação e funcionou bem o inserir, o remover nao testei mas o princípio é o mesmo.

Vamos tentar descorbrir o que pode estar acontecendo. Posta aqui o código das classes ProdutoDao e EntityManagerProducer, pra gente dar uma olhada.

Abraço.

solução!

Oi Naldson, tudo bem?

Será que conseguiu resolver o problema? Eu estou encerrando este tópico, ok? Caso a dúvida persista, sinta-se à vontade para abrir um novo.

Abraço.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software