Necesito Ayuda! Hibernate y relaciones :/

#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.
 
#2
No tengo un proyecto a la mano en esta pc para darte alguna referencia o ejemplo, mañana vuelvo a postear en este tema, lo que te puedo adelantar es que lo más sencillo, es comenzar por definir tu modelo ER en tu BD, si ya tienes tus tablas creadas y sus relaciones entre sí, lo más sencillo es que se autogenere el código de hibernate para tu aplicación, tanto con Netbeans como con Eclipse+plugin es muy sencillo y hay bastante material en la red. En lo personal me parece más sencillo con Netbeans, pero es cuestión de gustos. De esa manera te libras de estar codificando el xml a mano, y si tu interés es aprender, puedes analizarlo ya a sabiendas de que ese código si funciona.
Saludos
 
Arriba