Ver Mensaje Individual
  #5 (permalink)  
Antiguo 12/04/2012, 06:02
Avatar de Fuzzylog
Fuzzylog
 
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Hibernate (Editar clave foranea)

Hablando en plata... Si tienes que actualizar una dirección lo que tienes que cambiar es el objeto de la clase Adress, pero no hace falta modificar la ID.

Ejemplo:
Address ID 2 ; DIRECCION: Plaza Concordia S/N
Resulta que le cambian el nombre a la plaza, pues lo que tiene que cambiar es:
Agress ID 2 ; DIRECCION: Plaza Discordia S/N

Si lo que tienes es un Cliente que vive en un sitio y se cambia a otro, lo que tienes es que modificar el campo ADRESS_ID del Customer asignandole el ID del nuevo Adress.

Si está bien mapeado en hibernate... dentro del customer tienes el objeto adress completo y puedes recuperar sus datos.

Pero cuando va a guardar en BD el customer con el address modificado, lo que hace es solo guardar LA ID del nuevo address en la columna propia del customer, es decir, modificas el valor de la clave foranea de CUSTOMER, no el valor de la clave primaria de ADRESS (esa no se toca).
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}