yo lo vi en 6 segundos despues de leer la exception... tomate tu tiempo y lo vas a ver vos tambien
2010/2/24 Fabio Maulo <[email protected]> > si mirá tu clases y tu mappings tenes la respuesta. > > 2010/2/23 Sebastian <[email protected]> > > Hola grupo >> >> Buneo este es mi primero mensaje, el problema que tengo es en el mapeo >> de una factura a sus autorizaciones. La relacion es que tengo una >> factura con un detalle de aurorizaciones, es una relacion >> unidireccional de una factura hacia muchas autoirizaciones. >> >> El error que me da al pedir la coneccion es el siguiente: >> >> "Could not find a getter for property 'Autoriza' in class >> 'PruebaCRUD_NH_IDCompuesto.CFacturaAutoriza" >> >> Mi solucion de prueba tiene las siguentes clases. >> >> public class CFacturaAutoriza >> { >> private int? _oldHashCode; >> public override bool Equals(object obj) >> { >> CFacturaAutoriza other = obj as CFacturaAutoriza; >> if (other == null) >> return false; >> >> // handle the case of comparing two NEW objects >> bool otherIsTransient = Equals(other.Numero, -1); >> bool thisIsTransient = Equals(Numero, -1); >> >> if (otherIsTransient && thisIsTransient) >> return ReferenceEquals(other, this); >> return other.Numero.Equals(this.Numero) && >> other.Fecha.Equals(this.Fecha) && other.Tipodoc.Equals(this.Tipodoc) >> && other.Posicion.Equals(this.Posicion); >> } >> >> public override int GetHashCode() >> { >> // Once we have a hash code we'll never change it >> if (_oldHashCode.HasValue) >> return _oldHashCode.Value; >> >> bool thisIsTransient = Equals(Numero, -1); >> // When this instance is transient, we use the base >> GetHashCode() >> // and remember it, so an instance can NEVER change its >> hash code. >> if (thisIsTransient) >> { >> _oldHashCode = base.GetHashCode(); >> return _oldHashCode.Value; >> } >> return this.Numero.GetHashCode() + >> this.Fecha.GetHashCode() + Tipodoc.GetHashCode() + >> this.Posicion.GetHashCode(); >> } >> >> public virtual DateTime Fecha { get; set; } >> public virtual string Tipodoc { get; set; } >> public virtual int Numero { get; set; } >> public virtual int Posicion { get; set; } >> public virtual string Descripcion { get; set; } >> public virtual string Usuario { get; set; } >> } >> >> public class CFacturaCabezal >> { >> >> private int? _oldHashCode; >> public override bool Equals(object obj) >> { >> CFacturaCabezal other = obj as CFacturaCabezal; >> if (other == null) >> return false; >> >> // handle the case of comparing two NEW objects >> bool otherIsTransient = Equals(other.Numero, -1); >> bool thisIsTransient = Equals(Numero, -1); >> >> if (otherIsTransient && thisIsTransient) >> return ReferenceEquals(other, this); >> return other.Fecha.Equals(this.Fecha) && >> other.Tipodoc.Equals(this.Tipodoc) && >> other.Numero.Equals(this.Numero); >> } >> >> public override int GetHashCode() >> { >> // Once we have a hash code we'll never change it >> if (_oldHashCode.HasValue) >> return _oldHashCode.Value; >> >> bool thisIsTransient = Equals(Numero, -1); >> // When this instance is transient, we use the base >> GetHashCode() >> // and remember it, so an instance can NEVER change its >> hash code. >> if (thisIsTransient) >> { >> _oldHashCode = base.GetHashCode(); >> return _oldHashCode.Value; >> } >> return this.Fecha.GetHashCode() + >> this.Tipodoc.GetHashCode() + this.Numero.GetHashCode(); >> } >> >> // public int Id { get; set; } >> //public virtual int id { get; set; } >> public virtual DateTime Fecha { get;set; } >> string _tipodoc; >> public virtual string Tipodoc >> { >> get { return this._tipodoc.Trim(); } >> set { this._tipodoc = value; } >> } >> public virtual int Numero { get; set; } >> public virtual DateTime Fechaasto { get; set; } >> public virtual string Lote { get; set; } >> public virtual int Asiento { get; set; } >> public virtual IList<CFacturaAutoriza> Autoriza { get; set; } >> } >> >> Y los archivos de mapeo son los siguientes. >> >> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" >> assembly="PruebaCRUD-NH-IDCompuesto" >> namespace="PruebaCRUD_NH_IDCompuesto"> >> <class name="CFacturaAutoriza" table="facturas_autoriza"> >> <composite-id> >> <key-property name="Fecha" column="fecha" type="date" /> >> <key-property name="Tipodoc" column="tipodoc" type="String" >> length="6" /> >> <key-property name="Numero" column="numero" type="int" /> >> <key-property name="Posicion" column="posicion" type="int" /> >> </composite-id> >> >> <many-to-one >> name="Autoriza" >> class="CFacturaAutoriza" >> insert="false" >> update="false" >> not-null="true" cascade="all"> >> >> <column name="Fecha" /> >> <column name="Tipodoc" /> >> <column name="Numero" /> >> <column name="Posicion" unique="true"/> >> </many-to-one> >> >> <property name="Posicion" column="posicion" type="int" /> >> <property name="Descripcion" type="string" column="descripcion" /> >> <property name="Usuario" type="string" column="usuario"/> >> </class> >> </hibernate-mapping> >> >> >> /// Y el mapping de la clase FacturaAutoriza >> >> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" >> assembly="PruebaCRUD-NH-IDCompuesto" >> namespace="PruebaCRUD_NH_IDCompuesto"> >> <class name="CFacturaCabezal" table="facturas_cabezal" > >> <synchronize table="facturas_cabezal"/> >> <synchronize table="facturas_autoriza"/> >> >> <composite-id > >> <key-property name="Fecha" column="fecha" type="date" /> >> <key-property name="Tipodoc" column="tipodoc" type="String" >> length="6" /> >> <key-property name="Numero" column="numero" type="int" /> >> </composite-id> >> >> <bag name="Autoriza" >> table="facturas_autoriza" >> inverse="true" >> cascade="all" >> lazy="true" >> fetch="subselect" generic="true" > >> <key> >> <column name="Fecha" /> >> <column name="Tipodoc"/> >> <column name="Numero" /> >> </key> >> <one-to-many class="CFacturaAutoriza" /> >> </bag> >> >> <property name="Fechaasto" type="date" column="fechaasto" /> >> <property name="Lote" type="string" column="lote" length="6" /> >> <property name="Asiento" type="int" column="asiento" length="10" / >> > >> </class> >> </hibernate-mapping> >> >> >> Bueno desde ya muchas gracias... >> Sebastian. >> >> -- >> 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 > > -- 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
