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
