Sebastian,

La propiedad Autoriza esta el mapping de la clase CFacturaCabezal y ahi si
la necesitas, es justamente la coleccion de autorizaciones.

Cual es la propiedad en tu clase CFacturaCabezal que te permite acceder a
las autorizaciones?

----------------------------------
Carlos Peix

2010/2/24 Sebastian Iglesias (Gmail) <[email protected]>

> 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
>

-- 
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