¿Es necesario anular los métodos equals y hashcode en DTO? Porque los DTO son solo uso para transferencia de datos. ¿Hay alguna mejor práctica o algo relacionado con esto?Ignorar método igual en DTO
Gracias.
¿Es necesario anular los métodos equals y hashcode en DTO? Porque los DTO son solo uso para transferencia de datos. ¿Hay alguna mejor práctica o algo relacionado con esto?Ignorar método igual en DTO
Gracias.
This article ofrece un consejo:
objetos colocados en una lista, establezca o mapa (ya sea como una clave o valor) debe tener una definición apropiada de iguales.
Seguramente DTO se utilizan para algo más que la transferencia, las hacemos mantenemos, ordenar, almacenar en caché ellos ...
En la práctica qué gente proporcionan iguales y de hash? No no siempre ¿Deberíamos? Creo que si.
Si necesita o no proporcionar implementaciones equals
y hashcode
para sus clases de DTO depende de cómo las use.
Si los utiliza con una o más colecciones, debe proporcionar la implementación del método apropiado. Casi todas las colecciones llaman al equals
en los objetos que almacenan. Las colecciones basadas en la tabla hash como HashSet
y HashMap
llaman hashcode
, mientras que las colecciones ordenadas como TreeSet
y TreeMap
llaman al método compareTo
además de equals
.
Si se vuelve demasiado trivial puedo recomendar el uso de las anotaciones Lombok http://projectlombok.org/features/
"Esto es particularmente cierto para las 'clases', que se asignan a los registros de base de datos" centradas en los datos se asignan a las OTD registros de base de datos? creo que serían tus entidades/POJO, mientras que las DTO son simplemente para transferencia de datos y no deberían contener ninguna lógica. –
Existe lógica y lógica ... Si va a mantener los DTO en colecciones, es probable que se necesiten hash e iguales. Eso no implica agregar una lógica comercial seria. – djna
gracias por la aclaración. –