Hola,

Los ID's son todos del tipo:

    <id name="ID" column="TRAMIT_ID" type="System.Decimal" unsaved-
value="0">
      <generator class="native"/>
    </id>

Para la relación Tramit -> XML (1 a 1) tengo:

Tramit:
    <one-to-one name="Xml" access="field.pascalcase-underscore"
fetch="join" constrained="true" foreign-key="none"
class="IntGin.Core.GSIT.Domain.GsXml, IntGin.Core.GSIT.Domain" />

Xml:
    <many-to-one name="Tramit" access="field.pascalcase-underscore"
column="TRAMIT_ID" unique="true" />

Para la relación 1 a n tengo:

Tramit:

    <set name="HistoricEstats" cascade="all" inverse="true"
lazy="true" access="field.pascalcase-underscore">
      <key>
        <column name="TRAMIT_ID"/>
      </key>
      <one-to-many class="IntGin.Core.GSIT.Domain.GsHistoricEstats,
IntGin.Core.GSIT.Domain"/>
    </set>

Historic:

    <many-to-one name="Tramit"  access="field.pascalcase-underscore"
outer-join="auto" insert="true" update="true">
      <column name="TRAMIT_ID"/>
    </many-to-one>


Gracias a vuestras indicaciones funciona correctamente pero sigo
teniendo que establecer la relación en los dos sentidos...¿Siempre
tiene que ser así?

Por cierto, son mapeos generados que luego retoco para no empezar de
cero.

Muchas gracias



On 16 mar, 12:54, Fabio Maulo <[email protected]> wrote:
> Sacale el not-null al la referencia al parent en el child y luego controla
> los queries.
> Si ves algo que no te guste mandá tambien el mapping de los ID.
>
> @José
> Esos mappings me parecen generados.
>
> El 16 de marzo de 2010 08:12, José F. Romaniello
> <[email protected]>escribió:
>
>
>
> > Si en lugar de hacer A.Lista.Add(B) hago B.A = A y lo agrego a la
>
> > lista funciona.
>
> > Esto es lo que deberías hacer, si utilizas INVERSE, la clave aca de lo que
> > podes estar haciendo mal se llama inverse.
> > Inverse=True significa que la relación la controla la otra entidad, si lo
> > pones false, que es el valor por defecto significa que la relación la
> > controla el lado donde esta declarada la collection.
>
> > En general, hacemos algo así, dentro de la clase Tramit, agregamos un
> > metodo AddHistoric que hace lo siguiente:
>
> > AddHistoric(Historic historic)
> > {
> >    this.Lista.Add(historic);
> >    historic.Tramit = this;
> > }
>
> > Pero sospecho que en tu caso no debería ser si quiera inverse=true.
>
> > Con respecto al caso 2, creo que deberías usar el tag one-to-one, aunque
> > creo que como esta puesto el "cascade" debería hacer el insert.
>
> > Te comento por otro lado que insert="true" y update="true" son valores por
> > defecto, no hace falta que lo pongas.
>
> > saludos
>
> > --
> > Para escribir al Grupo, hágalo a esta dirección:
> > [email protected]
> > Para más, visite:http://groups.google.com/group/NHibernate-Hispano
>
> --
> Fabio Maulo

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a