Olá Nico, peguei o exemplo do curso com CDI e adicionei a biblioteca Delta Spike para utilizar algumas features legais como os repositórios. O repositório usa o entity manager provido através do nosso producer que já estava criado anteriormente, e tudo funciona normalmente, basta injetar o repositório no managed bean e sair usando:
public class JPAUtil {
private static EntityManagerFactory emf = Persistence
.createEntityManagerFactory("livraria");
@Produces
@RequestScoped
public EntityManager getEntityManager() {
return emf.createEntityManager();
}
public void close(@Disposes EntityManager em) {
em.close();
}
}
@Repository
public interface LivroRepository extends EntityRepository<Livro, Integr>
{
}
Minha dúvida é quando estamos em um ambiente Full JEE como o Wildfly, normalmente não precisamos do producer, o próprio container sabe injetar o EntityManager através da anotação @PersistenceContext e não tenho que me preocupar por exemplo com o fechamento do entitymanager, então no caso se querer usar os repositórios do DeltaSpike vou ter mesmo que fornecer esse entitymanager via producer mesmo estando dentro de um aplicationserver?