conceitualmente está ok, entendo q uma classe define como o objeto vai ser persistido e que este poderá ser recuperado de forma que eu a utilize novamente como um objeto.
Eu não entendo é na prática.
Pq tem uma classe que é a entidade e outra que é o DTO?
Pq tem nem sempre as entidades tem um DTO?
Pq as vezes os mesmos atributos q tem na entidade existem tb no DTO, e outras vezes não?
[quote=rodpuc]conceitualmente está ok, entendo q uma classe define como o objeto vai ser persistido e que este poderá ser recuperado de forma que eu a utilize novamente como um objeto.
Eu não entendo é na prática.
Pq tem uma classe que é a entidade e outra que é o DTO?
Pq tem nem sempre as entidades tem um DTO?
Pq as vezes os mesmos atributos q tem na entidade existem tb no DTO, e outras vezes não?
Obrigado[/quote]
Pelo que entendi sua pergunta, vc quer saber pq tenho que ter uma classe de modelo e outra DAO? É essa sua questão?
Se for, no DAO os atributos que existem não são os mesmos da entidade. Por exemplo, um dos atributos que pode utilizar no DAO é a Session.
Mas esse objeto do tipo DAO apenas trata a persistência de um objeto do modelo da entidade em alguma sessão. Não sei se fui claro, mas é dessa forma que entendo.
Essa história de DTO é complicada. Tem muita gente que sugere que não se utilize mais DTO pois são objetos anêmicos (sem comportamento). Parece que começaram a utilizar pra trafegar objetos entre camadas, ou principalmente quando é necessário transferir objetos pela rede. Em princípio você não precisa de DTOs, dê uma lida na wiki do Philip Calçado (http://www.fragmental.com.br/wiki/index.php/Evitando_VOs_e_BOs).
wagnerfrancisco muito obrigado pelo artigo, muito interessante e acrescentou muito, de verdade.
Mas… (sempre tem um mas )
é fato que:
1 - na empresa onde trabalho utilizam DTOs, então estou preso a isso, seja bom ou ruim. (pelo menos até convencê-los a mudar).
2 - como o próprio artigo indica, os erros são da própria Sun… acredito q seja dificil encontrar uma alternativa aos DTOs, e msm q seja possível, acho q teria de entender como usá-los direito antes de procurar uma solução melhor.
então minha dúvida ainda “persiste” (sem trocadilhos )