Y el atributo name es obligatorio, justamente la pregunta es como tendria
que definir el archivo de mapeo para ese caso. Ya que no me interesa navegar
de autorizaciones a factura.

Estoy trabajando con una BD de PostGresSQL 8.1 es lo que me falto aclarar en
el mail anterior.

Gracias por las respuestas.. :)

2010/2/24 Fabio Maulo <[email protected]>

> y la necesitas en el mapping ?
>
> 2010/2/24 Sebastian Iglesias (Gmail) <[email protected]>
>
>>  Si justamente no quiero una asociacion bidireccional, por eso es que no
>> tengo la propiedad Autoriza :)
>>
>>
>>
>> El 24 de febrero de 2010 12:14, Roberto Ramírez 
>> <[email protected]>escribió:
>>
>> En tu hbm.xml para CFacturaAutoriza tienes una propiedad que no existe en
>>> la clase.
>>> --
>>> Roberto Ramírez
>>>
>>> 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
>>>
>>
>>
>>
>> --
>> Saludos..
>>
>> Sebastián Iglesias
>> Montevideo - Uruguay
>> Blog: http://isebitas.blogspot.com/
>>
>>  --
>> 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
>



-- 
Saludos..

Sebastián Iglesias
Montevideo - Uruguay
Blog: http://isebitas.blogspot.com/

-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano

Responder a