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

Fábrica de EntityManager dependente da Persistence Unit.

Olá,

Observei que a fábrica de EntityManager está dependendo da Persistence Unit conforme abaixo, assim diminui bastante sua efetividade como biblioteca.

public class JPAUtil {

    private static EntityManagerFactory emf = Persistence.createEntityManagerFactory("livraria");

    @Produces

Assim, podemos alterar o código para aceitar uma String com o nome da Persistence Unit a ser utilizada:

public class JPAUtil {

    @Produces
    @RequestScoped
    public EntityManager getEntityManager(String pu) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory(pu);
        return emf.createEntityManager();
    }

    public void close(@Disposes EntityManager em) {
        if (em.isOpen()) {
            em.close();
        }
    }
}

Fiz dessa última forma, mas está ocorrendo o erro: "No bean is eligible for injection to the injection point [JSR-346 §5.2.2]"

2 respostas
solução!

Fala aí Cassius, blz?

O erro está ocorrendo pois você não tem nenhuma classe que produza String.

No final do curso, tem uma parte de débitos técnicos onde jogamos qual PU iremos utilizar para um arquivo Properties.

Espero ter ajudado.

Sim, obrigado.