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

Responder a