Boa tarde GUJ.
Estou desenvolvendo uma aplicação utilizando JSF 2 e EJB 3. Eu gosto de utilizar DAO então apesar de ter lido muitas discussões sobre isso eu criei meus DAOs, mas não os transformei em EJB só pra poder injetar o EntityManager. Eu crier uma Factory para DAOs e essa sim eu transformei em um EJB Local nela eu injeto o EntityManager e então crio o meu DAO com o new mesmo setando o EntityManager.
Mas agora surgiu uma dúvida, eu estou programando um método no ManagedBean que precisa somente fazer um find pela PK de uma entidade. A dúvida é: o que fica mais bonito (e correto) eu criar um método no EJB e esse método chama o DAO ou transformar o DAO em EJB e injeta-lo direto no ManagedBean pra ficar mais fácil.
Achei estranho criar o método no EJB que na verdade é uma duplicação do método no DAO:
public Usuario findById(Long id){
return (Usuario)daoFactory.getDao(Usuario.class).findById(id);
}
Mas também achei estranho injetar o DAO no ManagedBean parece que eu estou pulando alguma coisa.
E ai como vocês fazem isso?
Obrigado.