He visto a personas usar asignaciones de muchos a uno para representar relaciones uno a uno. También lo leí en un libro de Gavin King y en artículos.Hibernate: ¿por qué usar many-to-one para representar uno a uno?
Por ejemplo, si un cliente puede tener exactamente una dirección de envío y una dirección de envío puede pertenecer a un solo cliente, la asignación se da como:
<class name="Customer" table="CUSTOMERS">
...
<many-to-one name="shippingAddress"
class="Address"
column="SHIPPING_ADDRESS_ID"
cascade="save-update"
unique="true"/>
...
</class>
Las razones de libros como (citándolo):
"no te importa lo que está en el lado de destino de la asociación, por lo que se puede tratar como una asociacióna-uno sin el muchos parte."
Mi pregunta es, ¿por qué usar many-to-one
y no one-to-one
? ¿Qué tiene que ver con one-to-one
que lo hace una opción menos deseable para many-to-one
?
Gracias.
¿Puede ofrecer un ejemplo para aclarar su punto acerca de la correspondencia de la "relación de clave externa con una restricción única"?Dado que dicha relación es, lógicamente, uno a uno, ¿por qué debería mapearlo como uno a uno en hibernación? – KyleM
Esto parece responder _cuando_ pero no _por qué _...? –
Sin embargo, la desventaja es que no se puede usar 'inverse =" true "'. No funciona en 'many-to-one'. – pavanlimo