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]"