guidopj / rentauto

Base para todos los TP de la materia
0 stars 13 forks source link

Relacion Auto->Reserva #20

Open aitrusgit opened 8 years ago

aitrusgit commented 8 years ago

Tienen un problema en la relacion bidireccional Auto->Reserva

En Auto image

En Reserva image

Cuando en Auto dicen <key column="numeroSolicitud" /> en realidad a lo que se refiere es a como debe llamarse la FK que apunta a Auto desde los elementos de la colección. El nombre debe ser cualquiera pero en una relacion bidireccional tiene que coincidir con el nombre de la columna tal como la llamaron del otro lado de la relacion <many-to-one name="auto" column="auto" not-null="true" unique="false" cascade="all"/>

guidopj commented 8 years ago

esto, no lo entendí bien.

quedaria:

list name="reservas" cascade="save-update" key column="auto" list-index column="reserva_index" one-to-many class="ar.edu.unq.epers.model.Reserva" list de este modo el key column coincide con el name del auto en el archivo de reserva.xml. No entiendo por qué esto es necesario

aitrusgit commented 8 years ago

En el mapeo de Auto: en la <list> vos tenes un "key column" que basicamente le dice a hibernate "de esta forma se va a llamar la FK en la tabla hija (Reserva en este caso) que referencie al elemento padre en la tabla Auto.

En el mapeo de Reserva: vos tenes una referencia al Auto que contenes, escrita como un <one-to-many> el column en este lugar te dice como se va a llamar "la FK que referencie al Auto"

Ambos son extremos de la misma relación, es una relación bidireccional, la forma de decirle a hibernate que es asi es colocando el mismo nombre de column en ambos. Sino tranquilamente hibernate podria pensar que vos tus Reservas tienen una lista de Autos, y cada Auto referencia a otra Reserva que nada que ver (podria ser un modelo perfectamente valido, pero no es el caso)