Hola gente! Hmm... Edgar, el requerimiento de FacturaId como nullable, parece relacionado con: http://msmvps.com/blogs/lopez/archive/2011/05/23/nhibernate_2D00_3_2D00_part_2D00_6_2D00_one_2D00_to_2D00_many_2D00_with_2D00_many_2D00_to_2D00_one.aspx
donde se envian dos comandos (INSERT y UPDATE) por cada entidad "hija". Y que el campo BookId queda con valor nulo en el insert. La doc de NHibernate indica que tiene que ser nullable, pero no queda muy claro por que. En http://msmvps.com/blogs/lopez/archive/2011/05/30/nhibernate_2D00_3_2D00_part_2D00_7_2D00_one_2D00_to_2D00_many_2D00_with_2D00_inverse.aspx desaparecio el problema con un atribute inverse, pero no se si se aplica a tu caso. Entiendo que hace una semana, Fabio Maulo envio al trunk codigo que evita el INSERT y el UPDATE, y hace solo Update. Con lo que la necesidad de tener BookId (O FacturaId en tu caso) como nullable, ya no es mas. Nos leemos! Angel "Java" Lopez http://www.ajlopez.com http://twitter.com/ajlopez 2011/6/28 Edgar Ramos <[email protected]> > Nestor lo habia probado como not-null="false" y el error era el mismo. y de > hecho mo lo decia antes sin cambiar nada en mis mappings y unicamente > habilitando "FacturaId" como null = "true" funciona muy bien. > > La pregunta que se me plantea es si dejo tal cual como esta funcionando > "FacturaId" como null = "true", y los mappings sin tocarlos, es correcto lo > que estoy haciendo, la verdad me confundi un poco > > Saludos > > Edgar > > El esquema no lo genero con SchemaExport, > > El 28 de junio de 2011 14:25, Nestor Andres Rodriguez <[email protected] > > escribió: > > De todas maneras debes agregar el not-null = "false" en <many-to-one >> name="FacturaAplicada" class="Factura" column="FacturaId" not-null = >> "false"/>. >> >> Umm ... siempre me confundo con el not-null = "true/false" diria que >> seria mas intuitivo si dijera nullable="true/false"... En fin prueba y me >> cuentas. >> >> En caso de que no estes generando el esquema con el SchemaExport entonces >> debes correr un script en la BD que cambie la llave foranea "FacturaId" como >> null = "true". >> Saludos, >> Nestor Rodriguez >> 2011/6/28 Nestor Andres Rodriguez <[email protected]> >> >>> Estas generando el script desde NH con SchemaExport ? >>> >>> >>> 2011/6/28 Edgar Ramos <[email protected]> >>> >>>> Gente un Saludo >>>> >>>> Me he liado un poco con la relacion de estos objetos >>>> >>>> Factura y Retencion >>>> >>>> A una Factura le corresponde una retencion, siempre y cuando el cliente >>>> lo exija, caso contrario no aplica, para este efecto >>>> >>>> >>>> Mis clases >>>> >>>> public class Factura >>>> { >>>> ....... >>>> public virtual RetencionFuenteVenta Retencion { get; set; } >>>> ....... >>>> } >>>> >>>> public class RetencionFuenteVenta >>>> { >>>> ........ >>>> public virtual Factura FacturaAplicada { get; set; } >>>> ...... >>>> } >>>> >>>> Mis mappings >>>> >>>> <class name="RetencionFuenteVenta"> >>>> <id name="Id"> >>>> <generator class="hilo"/> >>>> </id> >>>> >>>> ......... >>>> <many-to-one name="FacturaAplicada" class="Factura" >>>> column="FacturaId" /> >>>> </class> >>>> >>>> <class name="Factura"> >>>> <id name="Id"> >>>> <generator class="hilo"/> >>>> </id> >>>> >>>> <many-to-one name="Retencion" class="RetencionFuenteVenta" >>>> column="RetencionId" cascade="all" /> >>>> </class> >>>> >>>> En el esquema de la bdd, la tabla Factura tiene el campo RetencionId >>>> como permitir valores nulos, que para mi >>>> caso es lo que requiero. >>>> Por otro lado La tabla RetencionFuenteVenta, campo FacturaId, tiene >>>> tambien permitir valores nulos, no me parece >>>> que sea lo correcto, pero lo puesto asi para que nh persista estas >>>> entidades y lo hace sin problemas >>>> >>>> Pero al quitar de RetencionFuenteVenta, campo FacturaID el permitir >>>> valores nulos, nh me tira un error >>>> ------------------------------- >>>> {"No se puede insertar el valor NULL en la columna 'FacturaID', tabla >>>> 'RetencionFuenteVenta'. La columna no admite valores NULL. INSERT >>>> falla.\r\n >>>> Se terminó la instrucción."} >>>> --------------------------------- >>>> >>>> Cualquier comentario o sugerencia les estoy muy agradecido >>>> >>>> Saludos >>>> >>>> Edgar >>>> >>>> >>>> >>>> -- >>>> Para escribir al Grupo, hágalo a esta dirección: >>>> [email protected] >>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>> >>> >>> >> -- >> Para escribir al Grupo, hágalo a esta dirección: >> [email protected] >> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >> > > -- > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > Para más, visite: http://groups.google.com/group/NHibernate-Hispano > -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
