Uribe
unread,Oct 1, 2008, 4:08:52 AM10/1/08Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to NHibernate-Hispano
Hola, tengo el siguiente problema. Tengo una relación entre tres
tablas de la siguiente manera:
TABLA A: claveA
atributos_tabla_a
TABLA B: claveA
claveC
atributos
TABLA C: claveC
atributos_tabla_b
La relación entre estas es:
TABLA A con TABLA B se enlazan mediante claveA de 1 a muchos (one-to-
many)
TABLA B con TABLA C se enlazan mediante claveC de muchos a 1 (many-to-
one)
El problema que tengo es a la hora de mapear y crear la clase
correspondiente a la TABLA B, ya que tanto claveA como claveC son
claves primarias en la tabla (tengo que mapear esta tabla porque
contiene otros campos que me resultan necesarios para el
funcionamiento de la aplicación [atributos]).
He intentado hacerlo mediante <composite-id> de la siguiente manera:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="ClaseDeLaTABLA_B" table="TABLA_B" lazy="false">
<composite-id name="Id" class="ClaseDeLaTABLA_B+ClavePrimaria">
<key-property name="CLAVE_A" type="System.String"
column="clave_a"/>
<key-property name="CLAVE_C" type="System.String"
column="clave_c"/>
</composite-id>
<property name="Atributos" column="atributos" />
<many-to-one name="A" column="clave_a" class="ClaseDeLaTABLA_A"
not-null="true" />
<many-to-one name="C" column="clave_c" class="ClaseDeLaTABLA_C"
not-null="true" />
</class>
</hibernate-mapping>
¿Podeis ayudarme y decirme si este archivo de mapeo es correcto?,
además ¿Como podría hacer la clase para poder utilizarla en la
aplicación, teniendo en cuenta que tengo que insertar nuevos
registros, es decir, poder modificar esta id compuesta?
Muchas gracias.
Un saludo, Rubén Uribe.