Buenas, estoy trabajando con un modelo en java que va a persistir con
hibernate y me surgio una duda:
1. ¿Porque usar un id numerico (ej: Long id) envez de usar los campos
que realmente identifican a la entidad?
Yo me imagino que sera por el tema de el tamaño que tomaría la base
de datos.
Pero el tema es que eso, y usar el hashCode y equals con el id no
me permiten validar naturalmente
algunas reglas del negocio como por ejemplo si yo no quiero que
haya dos o mas entidades del mismo
nombre (porque ese era su identificador natural) ya no me sirve el
equals, ni el contains de
collection ni nada.
Entonces me surgen tres opciones de las cuales no se cual es mas
conveniente, talvez inclusive alguna no sea valida:
1. No uso id numerico sino que uso los identificadores naturales
(ej: nombre, dni) y uso tambien estos
para el hash code y equals.
2. Uso los id numericos pero en hash code y equal uso los
identificadores naturales.
3. Uso los id numericos, tambien en el hash code y equals, pero
agrego un metodo mas a las clases entidad que
compare por los identificadores naturales (algo asi como
"obj.igualSegunNegocio(otroObj)") y uso ese metodo
para comparar en el modelo.
Bueno agradezco cualquier sugerencia, saludos.
_______________________________________________
Lista de correo Programacion.
[email protected]
http://listas.fi.uba.ar/mailman/listinfo/programacion