Mi idea seria algo así,

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-
lazy="false">
<class name="IAnexable, Namespace"
 dynamic-update="true"
 dynamic-insert="true"
 lazy="true"
 abstract="true">

        <union-subclass  name="ConcreteAnexo2" table="ConcreteAnexo2"
                lazy="true"
                dynamic-update="true"
                dynamic-insert="true"
                extends="IAnexable"
                abstract="false">

                <id name="Id" column="Id" type="System.Int32" unsaved-
value="0"><generator class="native"/></id>
                <property .... />
                .....
        </union-subclass>

        <union-subclass  name="ConcreteAnexo2" table="ConcreteAnexo2"
                        lazy="true"
                        dynamic-update="true"
                        dynamic-insert="true"
                        extends="IAnexable"
                        abstract="false">

                        <id name="Id" column="Id" type="System.Int32" unsaved-
value="0"><generator class="native"/></id>
                        <property .... />
                        .....
        </union-subclass>

</class>
</hibernate-mapping>

¿Es posible esto? Un saludo y gracias por vuestro tiempo.

On 28 ene, 09:26, Victor Mingueza <[email protected]> wrote:
> Si no me equivoco, usando subclass no puedo indicar la tabla a la cual
> quiero que mapee mi objeto, con lo que estaría usando la estrategia de
> Table per class Hierarchy, y me mapearia todas las clases concretas
> sobre la misma tabla y no es el objetivo.
>
> El objetivo es usar una tabla por cada clase concreta, las cuales
> heredan todas de una misma interfaz, pero sino me equivoco aquí no
> puedo usar identity para que el SGBD, se encargue de generar mi clave
> primaria. En la cual no quiero que hayan saltos sino que sean números
> correlativos para cada una de mis tablas. ¿Es esto posible? y si
> podéis darme alguna guía ya que en la documentación no veo ejemplos
> sobre esto.
>
> Pensándolo bien el discriminador no seria necesario. Ya que yo podría
> hacer una query para obtener un objeto concreto con una consulta del
> tipo s.Get(typeof(ConcreteAnexo1)(1), cuando sepa que es de este tipo,
> en lugar de algo como esto s.Get(typeof(IAnexable)(1,"ConcreteAnexo1")
>
> Un saludo
>
> On 27 ene, 19:30, Fabio Maulo <[email protected]> wrote:
>
>
>
> >http://nhforge.org/doc/nh/en/index.html#mapping-declaration-subclass
> > que el campo discriminator sea parte de la PK no lo vas a encontrar ya que
> > no es la def. en ORM.
> > En ORM el POID es univoco adentro una gerarquia de clases o univoco en todo
> > el dominio así que no hace falta usar una clave compuesta para eso.
>
> > El 27 de enero de 2010 14:03, Victor Mingueza
> > <[email protected]>escribió:
>
> > > Hola Buenas a todos,
>
> > >  Quería saber si exista la posibilidad de usar esta opción en
> > > NHibernate, ya que en la documentación no he visto ningún ejemplo de
> > > como hacerlo y no me parece en principio una forma  tan rara de
> > > realizar la herencia.
>
> > >  Os paso a explicar el caso para que quede un poco mas claro. Mi
> > > sistema permite que unos objetos en concretos sean Anexables a otros,
> > > es decir
>
> > > Mi elemento A tiene una colección de objetos Anexos los cuales pueden
> > > ser del tipo ConcreteAnexo1, ConcreteAnexo2...los cuales implementan
> > > todos las interfaz Anexos que define una serie de propiedades comunes
>
> > > Pero mis ConcreteAnexo no quiero que compartan el mismo identificador,
> > > es decir en la tabla ConcreteAnexo1 no quiero que hayan saltos en el
> > > Id, porque este se ha usado en un registro de ConcreteAnexo2.
>
> > > Sino que la clave de mi table ConcreteAnexo1 fuera solo el
> > > identificador mas el campo discriminador que no sera parte de la clave
> > > primaria. Aunque NHibernate si use este discriminador primero para
> > > diferenciar entre las distintas tablas cuando se haga una consulta por
> > > un Id concreto evitando hacer la select de cada una de las tablas
> > > ConcreteAnexo. y por ultimo usar ambos campos la PK y Discriminador
> > > para diferenciar varios objetos  de tipos concreto distintos.
>
> > > Un saludo y gracias por vuestro tiempo.
>
> > > --
> > > 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

Responder a