wazusahdII
Becerro
- Desde
- 14 Jul 2012
- Mensajes
- 23
- Tema Autor
- #1
Qué tal bakunos, espero se encuentren bien.
Actualmente estoy desarrollando una pequeña aplicación donde tengo la necesidad de utilizar Hibernate.
Bueno, para no hacer las cosas tan largas y esperando ser claro, mi problema es a la hora de las relaciones, en mi caso uno a uno y uno a muchos, explicaré:
En la red, encontré el clásico ejemplo de: Persona y dirección donde persona posee sólo una dirección, esto es, Persona contiene un atributo de tipo Direccion...
(Código en Java)
public class Persona{
private Direccion direccion;
private String nombre;
/*
Constructor y demás.....
*/
}
public class Direccion{
private String direccion;
/*
Constructor y demás...
*/
}
Y el archivo de mapeo de Persona sería:
<hibernate-mapping>
<class name="Persona" table="PERSONA">
<id name="id" column="idPersona">
<generator class="foreign">
<param name="property">direccion</param>
</generator>
</id>
<property name="nombre" />
<one-to-one name="direccion" cascade="persist, delete"/>
</class>
</hibernate-mapping>
Lo copié, corrí, inserté, eliminé y todo bien; al insertar un objeto tipo persona, automáticamente se inserta la información en la tabla dirección etc.
Pero supongamos que persona también posee un atributo llamado mascota:
public class Mascota{
private String nombre;
private String tipo;
/*
Constructor y demás
*/
}
quedando la clase persona así:
public class Persona{
private Direccion direccion;
private Mascota mascota;
private String nombre;
/*
Constructor y demás.....
*/
}
Cómo quedaría el archivo de mapeo? Cómo relaciono un objeto (En este caso persona) con otros cuantos (En este caso dirección y mascota)?. Porque en el ejemplo de Persona y Dirección, el objeto persona sólo se relaciona con otro objeto, y en mi aplicación mi objeto A necesito relacionarlo con al menos 5 objetos más, lo intenté pero sólo me respeta la ultima relación codificada en el ".hbm.xml"
<hibernate-mapping>
<class name="Controlador.Paciente.Paciente" table="Pacientes">
<id name="idPaciente" column="IDPaciente">
<generator class="foreign">
<param name = "property">correo</param>
<param name = "property">tratamiento</param>
<param name = "property">registroCitas</param>
<param name = "property">telefono</param> <!-- Sólo me respeta esta relación, las anteriores (correo, tratamiento etc) no las respeta-->
</generator>
</id>
<property name= "nombre" />
<property name = "apellidoP"/>
<property name = "apellidoM"/>
<property name = "edad"/>
<property name = "fechaN"/>
<property name = "domicilio"/>
<one-to-one name="telefono" cascade="persist, delete"/>
<one-to-one name="correo" cascade="persist, delete"/>
<property name = "fechaRegistro"/>
<one-to-one name="tratamiento" cascade="persist, delete"/>
<list name="pagos" cascade="all-delete-orphan">
<key column="IDPaciente" />
<index column="ORDEN" />
<one-to-many class="Controlador.Pago.Pago" />
</list>
<one-to-one name="registroCitas" cascade="persist, delete"/>
</class>
</hibernate-mapping>
En resumen, mi pregunta es: Cómo relaciono un Objeto A con más de 1 objeto B, C, D etc...
Espero ser claro y haberme explicado bien, de lo contrario pueden dejar un comentario y con gusto busco la manera de explicarme mejor.
Muchas gracias por su tiempo y ayuda.
Actualmente estoy desarrollando una pequeña aplicación donde tengo la necesidad de utilizar Hibernate.
Bueno, para no hacer las cosas tan largas y esperando ser claro, mi problema es a la hora de las relaciones, en mi caso uno a uno y uno a muchos, explicaré:
En la red, encontré el clásico ejemplo de: Persona y dirección donde persona posee sólo una dirección, esto es, Persona contiene un atributo de tipo Direccion...
(Código en Java)
public class Persona{
private Direccion direccion;
private String nombre;
/*
Constructor y demás.....
*/
}
public class Direccion{
private String direccion;
/*
Constructor y demás...
*/
}
Y el archivo de mapeo de Persona sería:
<hibernate-mapping>
<class name="Persona" table="PERSONA">
<id name="id" column="idPersona">
<generator class="foreign">
<param name="property">direccion</param>
</generator>
</id>
<property name="nombre" />
<one-to-one name="direccion" cascade="persist, delete"/>
</class>
</hibernate-mapping>
Lo copié, corrí, inserté, eliminé y todo bien; al insertar un objeto tipo persona, automáticamente se inserta la información en la tabla dirección etc.
Pero supongamos que persona también posee un atributo llamado mascota:
public class Mascota{
private String nombre;
private String tipo;
/*
Constructor y demás
*/
}
quedando la clase persona así:
public class Persona{
private Direccion direccion;
private Mascota mascota;
private String nombre;
/*
Constructor y demás.....
*/
}
Cómo quedaría el archivo de mapeo? Cómo relaciono un objeto (En este caso persona) con otros cuantos (En este caso dirección y mascota)?. Porque en el ejemplo de Persona y Dirección, el objeto persona sólo se relaciona con otro objeto, y en mi aplicación mi objeto A necesito relacionarlo con al menos 5 objetos más, lo intenté pero sólo me respeta la ultima relación codificada en el ".hbm.xml"
<hibernate-mapping>
<class name="Controlador.Paciente.Paciente" table="Pacientes">
<id name="idPaciente" column="IDPaciente">
<generator class="foreign">
<param name = "property">correo</param>
<param name = "property">tratamiento</param>
<param name = "property">registroCitas</param>
<param name = "property">telefono</param> <!-- Sólo me respeta esta relación, las anteriores (correo, tratamiento etc) no las respeta-->
</generator>
</id>
<property name= "nombre" />
<property name = "apellidoP"/>
<property name = "apellidoM"/>
<property name = "edad"/>
<property name = "fechaN"/>
<property name = "domicilio"/>
<one-to-one name="telefono" cascade="persist, delete"/>
<one-to-one name="correo" cascade="persist, delete"/>
<property name = "fechaRegistro"/>
<one-to-one name="tratamiento" cascade="persist, delete"/>
<list name="pagos" cascade="all-delete-orphan">
<key column="IDPaciente" />
<index column="ORDEN" />
<one-to-many class="Controlador.Pago.Pago" />
</list>
<one-to-one name="registroCitas" cascade="persist, delete"/>
</class>
</hibernate-mapping>
En resumen, mi pregunta es: Cómo relaciono un Objeto A con más de 1 objeto B, C, D etc...
Espero ser claro y haberme explicado bien, de lo contrario pueden dejar un comentario y con gusto busco la manera de explicarme mejor.
Muchas gracias por su tiempo y ayuda.