Repito:
en ORM el POID es unico en una gerarquia de clases o unico adentro el
dominio.

El 28 de enero de 2010 05:37, Victor Mingueza
<[email protected]>escribió:

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



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