Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Criação de EntityManager

Boa tarde,

Pessoal é o seguinte estou com um problema. Comecei a desenvolver uma aplicação usando o hibernate.cfg.xml porém devidos as circustâncias teria que modifica-lá é fazer ela usa uma persistence.xml. Na minha aplicação eu possuo um HibernateFilter... segue o código



import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;

import com.peticwizard.util.HibernateUtil;


@WebFilter(urlPatterns = { "*.jsf" })
public class ConexaoHibernateFilter implements Filter {
    private SessionFactory sf;

    public void init(FilterConfig config) throws ServletException {
        this.sf = HibernateUtil.getSessionFactory();
    }

    public void doFilter(ServletRequest servletRequest,
            ServletResponse servletResponse, FilterChain chain)
            throws ServletException {

        Session currentSession = this.sf.getCurrentSession();

        Transaction transaction = null;

        try {
            transaction = currentSession.beginTransaction();
            chain.doFilter(servletRequest, servletResponse);
            transaction.commit();
            if (currentSession.isOpen()) {
                currentSession.close();
            }
        } catch (Throwable ex) {
            try {
                if (transaction.isActive()) {
                    transaction.rollback();
                }
            } catch (Throwable t) {
                t.printStackTrace();
            }
            throw new ServletException(ex);
        }
    }

    public void destroy() {
    }
}

Sei que o persistence.xml possui algumas particularidades. Minha dúvida é seguinte: Preciso fazer alguma controle de transação ou algo do tipo ou é só usar o persistence.xml. Haaa, adotei o wildfly como servidor.

Obrigado

1 resposta
solução!

Olá Matheus !

Tem que instanciar o EntityManager e outras coisinhas tem uma apostila da caelum muita boa segue o link:

https://www.caelum.com.br/apostila-java-web/uma-introducao-pratica-ao-jpa-com-hibernate/#14-8-exercicios-configurando-o-jpa-e-gerando-o-schema-do-banco