En tu hbm.xml para CFacturaAutoriza tienes una propiedad que no existe en la clase. -- LSIA Roberto Ramírez Líder Tecnológico @ SuperADMINISTRADOR ECO-HORU SuperSISTEMAS Tel. (644)415.2520 Ext. 113
[email protected] www.eco-horu.com.mx Garantizamos que el sistema le sirva muy bien al cliente y cada vez mejor. CLIENTE CONTENTO. El software excelente es nuestro negocio para ayudar excelentemente a empresas de todas las ciudades. El cliente nos debe de pagar únicamente por el trabajo que le sirva. On Tue, Feb 23, 2010 at 12:06 PM, Sebastian <[email protected]> wrote: > 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 -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
