Si te leí y te contesté...
*
*
*"Lo intenté asi como mencionas José, pero al hacer BuildSessionFactory() me
lanza la siguiente excepcion:"*
*
*
*
*
*
*
*
*--
Roberto Ramírez

2010/2/18 José F. Romaniello <[email protected]>

> Robrto:
>    Me estas charlando? te mande todo el mapping de la propiedad exactamente
> como lo tenias que pegar, y pusiste el atributo en el otro extremo de la
> relación, en cualquier lado. Lee bien mis mails anteriores.
>
>
> Fabio:
>   No me cuenta que era un list.
>
> El 18 de febrero de 2010 14:05, Fabio Maulo <[email protected]>escribió:
>
> http://nhforge.org/doc/nh/en/index.html#collections-bidirectional
>>  <http://nhforge.org/doc/nh/en/index.html#collections-bidirectional>Please
>> note that NHibernate does not support bidirectional one-to-many associations
>> with an indexed collection (list, map or array) as the "many" end, you have
>> to use a set or bag mapping.
>>
>> El 18 de febrero de 2010 13:46, Roberto Ramírez 
>> <[email protected]>escribió:
>>
>> Lo intenté asi como mencionas José, pero al hacer BuildSessionFactory() me
>>> lanza la siguiente excepcion:
>>>
>>> Core.DetalleFactura.hbm.xml(41,111): XML validation error: No se ha
>>> declarado el atributo 'inverse'.
>>>
>>> Ahora, deje la responsabilidad de ejecutar los query's de SQL al list de
>>> mi mapping Factura y no al <many-to-one> del DetalleFactura con el atributo
>>> "inverse" seteado a true y funciono el delete:
>>>
>>> <?xml version="1.0" encoding="utf-8" ?>
>>> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Core"
>>> namespace="Core">
>>>   <class name="Factura" table="tblFacturas" lazy="false">
>>>     <id name="Id" column="id" type="System.Int64" unsaved-value="0">
>>>       <generator class="identity" />
>>>     </id>
>>>     <many-to-one name="Cliente" class="Cliente" column="idCliente"
>>> not-null="true" cascade="none"></many-to-one>
>>>     <list name="Detalle" table="tblDetalles" cascade="all-delete-orphan"
>>> lazy="false" *inverse="true"*>
>>>        <key column="idFactura"/>
>>>       <index column="orden"/>
>>>        <one-to-many class="DetalleFactura"></one-to-many>
>>>     </list>
>>>    </class>
>>> </hibernate-mapping>
>>>
>>> Para llegar a esa deducción estuve leyendo un poco de aquí:
>>> http://simoes.org/docs/hibernate-2.1/155.html
>>>
>>> Si lo crees conveniente o no estaré considerando algo mas? En realidad no
>>> alcanzo a comprender al 100% el uso de inverse.
>>>
>>> Gracias.
>>>
>>> --
>>> Roberto Ramírez
>>>
>>> 2010/2/18 José F. Romaniello <[email protected]>
>>>
>>>> Lo que te decía antes era:
>>>>  <many-to-one name="Factura" class="Factura" column="idFactura"
>>>> not-null="false" cascade="none" *inverse="true"*></many-to-one>
>>>>
>>>> El 18 de febrero de 2010 11:58, Roberto Ramírez <
>>>> [email protected]> escribió:
>>>>
>>>> Buenos días José, Fabio, gracias por atender.
>>>>>
>>>>> La parte del mapping del detalle lo tengo escrito de la siguiente
>>>>> manera:
>>>>>
>>>>> <?xml version="1.0" encoding="utf-8" ?>
>>>>> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Core"
>>>>> namespace="Core">
>>>>>   <class name="DetalleFactura" table="tblDetalles" lazy="false">
>>>>>      <id name="Id" column="id" type="System.Int64" unsaved-value="0">
>>>>>       <generator class="identity" />
>>>>>     </id>
>>>>>     <property name="Orden" column="orden" type="System.Int32"
>>>>> not-null="false"></property>
>>>>>     <many-to-one name="Articulo" class="Articulo" column="idArticulo"
>>>>> not-null="true" cascade="none"></many-to-one>
>>>>>     <many-to-one name="Factura" class="Factura" column="idFactura"
>>>>> not-null="false" cascade="none"></many-to-one>
>>>>>   </class>
>>>>> </hibernate-mapping>
>>>>>
>>>>> Aprecio la ayuda...
>>>>>
>>>>> =)
>>>>>
>>>>> --
>>>>> Roberto Ramírez
>>>>>
>>>>> 2010/2/18 José F. Romaniello <[email protected]>
>>>>>
>>>>> manda el mapping de detalle de factura.. especialmente la parte del
>>>>>> many-to-one.
>>>>>> Me huele a que le falta un inverse=true en el many to one.
>>>>>>
>>>>>>
>>>>>> El 17 de febrero de 2010 22:53, Roberto Ramírez <
>>>>>> [email protected]> escribió:
>>>>>>
>>>>>>> Buenas tardes, otra vez aqui dando lata:
>>>>>>>
>>>>>>> Hace unos días, en este thread
>>>>>>> http://groups.google.com/group/nhibernate-hispano/browse_thread/thread/187664b60db361a5
>>>>>>>  había hablado
>>>>>>> sobre un modelo Factura ==> Detalle y ahora tengo otro problemita por
>>>>>>> resolver, agradecería mucho la opinión de todos ustedes.
>>>>>>>
>>>>>>> Cuando guardo la factura con su detalle, requiero que mi lista de
>>>>>>> detalles este ordenada usando list ya que según el post de ayende (
>>>>>>> http://ayende.com/Blog/archive/2009/06/02/nhibernate-mapping-ltlistgt.aspx),
>>>>>>> mapear mi lista como list, me permite ordenar de manera automática
>>>>>>>
>>>>>>> Pero también puedo eliminar mi factura borrando en cascada todo su
>>>>>>> detalle, solo que al final del request cuando ejecuto el commit, 
>>>>>>> nhibernate
>>>>>>> me lanza la siguiente excepción:
>>>>>>>
>>>>>>> session.Delete(Factura);
>>>>>>>
>>>>>>> "could not delete collection: [Core.Factura.Detalle#72][SQL: UPDATE
>>>>>>> tblDetalles SET idFactura = null, orden = null WHERE idFactura = @p0]"
>>>>>>>
>>>>>>> Mi mapping:
>>>>>>>
>>>>>>> <?xml version="1.0" encoding="utf-8" ?>
>>>>>>> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Core"
>>>>>>> namespace="Core">
>>>>>>>   <class name="Factura" table="tblFacturas" lazy="false">
>>>>>>>     <id name="Id" column="id" type="System.Int64" unsaved-value="0">
>>>>>>>       <generator class="identity" />
>>>>>>>     </id>
>>>>>>>     <many-to-one name="Cliente" class="Cliente" column="idCliente"
>>>>>>> not-null="true" cascade="none"></many-to-one>
>>>>>>>     <list name="Detalle" table="tblDetalles"
>>>>>>> cascade="all-delete-orphan" lazy="false">
>>>>>>>       <key column="idFactura"/>
>>>>>>>       <index column="orden"/>
>>>>>>>       <one-to-many class="DetalleFactura"></one-to-many>
>>>>>>>     </list>
>>>>>>>   </class>
>>>>>>> </hibernate-mapping>
>>>>>>>
>>>>>>> Yo entiendo que al final nh lo que pretende realizar es un update
>>>>>>> sobre mi tblDetalles para ordenar, pero al ya no existir el detalle pues
>>>>>>> lanza la excepción.
>>>>>>>
>>>>>>> Agradezco la ayuda que me puedan brindar.
>>>>>>>
>>>>>>> Uso la versión 2.1.0.400 de la librería.
>>>>>>> --
>>>>>>> Roberto Ramírez
>>>>>>>
>>>>>>> --
>>>>>>> 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
>>>
>>
>>
>>
>> --
>> 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
>>
>
>  --
> 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