estamos adotando uma arquitetura EJB (Sessions) com POJOS para o desenvolvimento do sistema. As setas representam dependências diretas entre as camadas:
FACADE (Session Bean) -> DAO
FACADE (Session Bean) -> POJO
POJO -> DAO
Acesso o DAO de dentro do FACADE para atividades que criam objetos como insert e select, como num FACTORY. Outra solução seria colocar estes métodos de criação e busca como estáticos dentro POJO. Dessa maneira ficaria assim:
A regra é baixo acoplamento entre camadas, então segue esta outra idéia… porque deixar seus sessions beans dependentes de outra camada? De certa forma esta dependência existirá mas não tão explicitamente.
A sugestão foi a de retirar TODOS os métodos de acesso ao repositório do POJO e colocá-los no DAO (na primeira alternativa eu só retiraria os de INSERT e SELECT). Dessa maneira, se eu quisesse fazer um UPDATE ou um DELETE de um POJO por exemplo, eu passaria este POJO do FACADE para o DAO e o DAO encarregaria-se disto.