Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/04/2012, 02:56
ElAthlit
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 9 meses
Puntos: 78
Hibernate (Editar clave foranea)

Hola a todos,
me estoy metiendo con Hibernate y me encuentro con lo siguiente:

-> ¿Cómo editar una clave foranea?

Hago uso de un ejemplo de internet para que quede más claro:

Tabla address:
Código MySQL:
Ver original
  1. create table address(
  2.     address_id int(11) not null auto_increment,
  3.     address_line1 varchar(100) not null,
  4.     address_line2 varchar(100),
  5.     city varchar(50) not null,
  6.     state varchar(50) not null,
  7.     pincode int(10) not null,
  8.     primary key(address_id));

Tabla customer:
Código MySQL:
Ver original
  1. create table customer(
  2.     customer_id int(11) not null auto_increment,
  3.     name varchar(50) not null,
  4.     email_id varchar(100),
  5.     contact_no varchar(20),
  6.     address_id int(11),
  7.     primary key(customer_id),
  8.     foreign key(address_id) references address(address_id));

La clase Adress:
Código Java:
Ver original
  1. public class Address {
  2.  
  3.  long addressId;
  4.  String addressLine1;
  5.  String addressLine2;
  6.  String city;
  7.  String state;
  8.  Integer pincode;
  9.  Customer customer;

La Clase Customer:

Código Java:
Ver original
  1. public class Customer {
  2.  Long customerId;
  3.     String name;
  4.     String emailAddress;
  5.     String contactNo;
  6.     Address address;

El Mapeo es:

Customer.hbm.xml
Código XML:
Ver original
  1. <many-to-one name=”address”  column=”address_id”
  2.                cascade=”all”  unique=”true”
  3.    />

Mi problema y pregunta:
La clave foranea de la tabla Customer llamada "address_id", no tengo acceso a ella mediante ningún atributo de la Clase "Customer", ya que ésta solo tiene el objeto al que hace referencia a la tabla Adress.

Si quiero modificar la clave foranea "adress_id" de la tabla Customer, como puedo dirigirme a ella?

He visto en numerosos ejemplos que todos están hechos de la misma manera, y editan varios campos, pero nunca éste, y puede darse el caso de NECESITARLO.

Si alguien me puede ayudar/orientar se lo agradecería mucho.

Un saludo.