Cara, eu populo o DTO dentro de um BO… e dentro desse BO é que eu acesso o DAO pra fazer a persistencia… mas isso é questão de arquitetura.
georgesq
mais pra q dto se hoje as entity’s são pojo?
não vejo mais necessidade a tempos deste pattern.
Lucas_Lacerda_Gertel
DTO pq existem campos que nao tem relação nenhuma com o meu POJO.
E entidade é entidade…rs.
BO, como ficaria isso?
Eu gostaria de separar ao máximo as responsabilidades.
sergiotaborda
O objeto de negocio (entidade) não pode ser montado no DAO. Um DTO (objeto generico) pode.
A sua classe não é um DAO, é um Repositorio, já que não abstrai a tecnologia de persistencia e sim a consulta
a ela.
É correto um Repositorio criar objetos de negocio.
Não é correto o controler de apresentação tomar nenhuma medida relativa aos objetos do dominio excepto obter um objeto vazio, prenche-lo e delegar pesquisas por objetos já preenchidos.
wamarra
BO - Business Objects, ou seja as regras de negócio da sua aplicação.
Segue um exemplo simples…
publicclassclasseBO{publicClasseDTOnomeDoMetodo(parametro){Sessionsession=HibernateUtil.currentSession();ClasseDTOclasseDTO=newClasseDTO();try{ClasseTalclasseTal=newClasseTalDAO().nomeDoMetodoNoDAO(parametro,session);//populando o DTOclasseDTO.setAtributo(classeTal.getAtributo());classeDTO.setAtributo2(classeTal.getAtributo2());classeDTO.setAtributo3(classeTal.getAtributo3());// etc... }catch(Exceptione){e.printStackTrace();}returnclasseDTO;}}
Espero ter ajudado!
T+
pcalcado
Qual seria o motivo para você usar um DTO nem um BO neste caso? Se existem campos no DTO que não estão presentes no objeto de negócio (acho que você está usando a palavra POJO incorretamente. Seu DTO é um POJO também) isso mostra que existem coisas no seu domínio que não estão mapeadas nos seus objetos de negócio.
Ao invés de criar um DTO e um BO (a famosa proramação BOLOVO) use objeto de negócio do DAO até a interface.
Paulo_Silveira
nao ha motivo ALGUM de usar DTOs entre LAYERS… pra que separar esses dois? se tem coisas da sua entidade que nao tem no DTO e vice versa, basta mapear corretamente pro banco de dados, ou ignorar alguns campos.
DTOs vc usa entre TIERS se houver necessidade (o que eh raro hoje em dia com ejb3 ja que os entity beans sao serializaveis, e nao remotos)