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
