Te hago una pregunta: Supongamos que en una entidad yo tengo una propiedad que se llama "Pirulo", si un programador no le asigna un valor, quien se lo debería asignar ?
El 16 de marzo de 2010 09:23, Juan Cuello <[email protected]> escribió: > 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 > -- 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
