Gracias a todos Angel, me pongo a leer los liks este momento
Saludos Edgar El 28 de junio de 2011 15:16, Angel Java Lopez <[email protected]>escribió: > 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 > -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
