Fabio: Me estas diciendo que no puedo usar un list?
Entonces no puedo tener una colección ordenada con nhibernate con list? bag soporta ordered collections? tengo que hacerlo manual? -- Roberto Ramírez 2010/2/18 Fabio Maulo <[email protected]> > No leí todo el thread solo contesté a lo ultimo que envió Roberto. > > El 18 de febrero de 2010 14:15, José F. Romaniello <[email protected] > > escribió: > > 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 >> > > > > -- > 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
