Discriminator *ES* table per class hierarchy.
Diego
2010/8/25 julio maldonado <[email protected]>
> ya habia probado con Table per class hierarchy pero no lo pude
> solucionar.
> ahora probare usando discriminador.
>
> On 24 ago, 13:20, Diego Mijelshon <[email protected]> wrote:
> > No le estás indicando a NHibernate en ningún lugar cómo manejar las
> > subclases.http://nhforge.org/doc/nh/en/index.html#inheritance
> >
> > Diego
> >
> > 2010/8/24 julio maldonado <[email protected]>
> >
> > > Hola tengo la clase agente y 2 subclases agente1 y agente2.
> > > todo agente es agente1 o agente2
> > > agente1 tiene un Legajo que es una propiedad
> > > agente2 tiene un Legajo o varios
> > > el tema es que cuando traigo un agente quiero que me traiga los datos
> > > del Agente1 o Agente2 segun corresponda.
> > > probe hacerlo con subclases y con interface sin exito por cierto.
> > > Alguna sugerencia?
> >
> > > *********************** agente ************************
> >
> > > <class name="Agente" table="Agente" lazy="false">
> > > <id name="Id" column="IdAgente">
> > > <generator class="native" />
> > > </id>
> > > <discriminator column="IdDiscriminador" type="String"/>
> >
> > > <property name="FechaBaja" not-null="false"/>
> > > <property name="FechaInicioActividad" />
> > > <property name="FechaFinActividad" not-null="false"/>
> > > <property name="Usuario" not-null="true"/>
> > > <property name="Fecha" not-null="true"/>
> > > <property name="UsuarioModificacion" />
> > > <property name="FechaModificacion" />
> >
> > > <many-to-one name ="Persona" column ="IdPersona" />
> > > <many-to-one name="DomicilioParticular" not-null="true"
> > > column="IdDomicilioParticular"
> >
> > > class="mds.general.core.domain.entidades.Domicilio" />
> > > <many-to-one name="DomicilioLaboral" not-null="true"
> > > column="IdDomicilioLaboral"
> >
> > > class="mds.general.core.domain.entidades.Domicilio"/>
> >
> > > ***************************** Agente1
> > > *************************************
> >
> > > <class name="Agente1" table="Agente1">
> > > <id name="Id" column="IdAgente1">
> > > <generator class="native" />
> > > </id>
> >
> > > <property name="Legajo" column="Legajo" not-
> > > null="true" />
> >
> > > <many-to-one name="Agente" column="IdAgente" not-
> > > null="true" />
> > > <many-to-one name="Oficina" column="IdOficina" not-
> > > null="true" />
> > > <many-to-one name="Categoria" column="IdCategoria" not-
> > > null="true" />
> > > <many-to-one name="RegimenHorario" column="IdRegimenHorario" not-
> > > null="true" />
> > > <many-to-one name="Agrupamiento" column="IdAgrupamiento" not-
> > > null="true" />
> > > <many-to-one name="Planta" column="IdPlanta" />
> >
> > > ***************************** Agente2
> > > *************************************
> >
> > > <class name="Agente2" table="Agente2">
> > > <id name="Id" column="IdAgente2">
> > > <generator class="native" />
> > > </id>
> > > <property name="Reserva"/>
> > > <property name="Legajo" />
> > > <property name="CantidadHoras" />
> > > <property name="RegistraAsistencia" />
> >
> > > <many-to-one name="Asignacion"
> column="IdAsignacion"
> > > />
> > > <many-to-one name="Agente" column="IdAgente"
> not-
> > > null="true" />
> > > <many-to-one name="Reemplazo"
> column="IdReemplazo"
> > > />
> > > <many-to-one name="PenaDisciplinaria"
> > > column="PenaDisciplinaria" />
> >
> > > <bag name="Oficinas" lazy="true"
> cascade="all-delete-orphan"
> > > inverse="false">
> > > <key column="Id2" />
> > > <one-to-many class="Oficina" />
> > > </bag>
> >
> > > </class>
> >
> > > ******************************** clase Agente1
> > > *****************************
> > > public class Agente1 : Agente
> >
> > > private int _id;
> > > private string _legajo;
> > > private Oficina _oficina;
> > > private Categoria _categoria;
> > > private RegimenHorario _regimenHorario;
> > > private Agrupamiento _agrupamiento;
> > > private Planta _planta;
> >
> > > ******************************** clase
> > > Agente2*****************************
> >
> > > public class Agente2
> > > {
> > > #region Variables
> >
> > > private int _id;
> > > private Asignacion _asignacion;
> > > private Agente _agente;
> > > private TipoDeDocente _tipoDeDocente;
> > > private Reemplazo _reemplazo;
> > > private PenaDisciplinaria _penaDisciplinaria;
> > > private bool _reserva;
> > > private string _legajo;
> > > private int _cantidadHoras;
> > > private bool _registraAsistencia;
> > > private IList<Oficina> _oficinas;
> >
> > > --
> > > 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