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
