Feeds de los foros

En la página principal de los foros encontrarás los enlaces al logo feed feed general y al de cada uno de los foros.

Subscribete para mantenerte informado de los cambios y responde a las dudas siempre que te sea posible

Buscar en el foro

Foro Persistencia

feed Foro Persistencia Foro: Persistencia

Nuevo Tema Nuevo Tema

Herencia con Hibernate 29/10/2008 20:53
anonymous

Hola a tod@s!

 Tengo un problema con la herencia en hibernate. Os explico: tengo una clase A que tiene 2 subclases: B y C. Éstas, a su vez, tienen subclases: B1 y B2 para la clase B y C1 y C2 para la clase C. 

 Si intento hacer un load de la clase B funciona todo de forma correcta (y con cualquiera de las entidades que cuelgan de A). Pero a la que intento cargar A me da un error de "output columns too long". 

 El motor de BBDD que estoy usando es MaxBD. Tengo tantos HBM como entidades tengo, es decir, A.hbm.xml (class) y B.hbm.xml (joined-class de A), C.hbm.xml (joined-class de A)...

 He puesto el log de hibernate y resulta que, cuando cargo la clase A me está haciendo una mega join con todas las clases hijas, con lo que el select excede del máximo de página y sale el mensajito "output columns too long".

 ¿Alguien sabe cómo se podría resolver? ¿Me falta algo en los mappings de hibernate? ¿Lo tengo que hacer con discriminador?

 Espero que alguien me pueda ayudar.

 Gracias

#unapprove_message#
RE: Herencia con Hibernate 31/10/2008 06:22
jholder

siempre genere los mappings con xdoclet.  Y en el caso de la herencia, dado tu caso, solo genera un A.hbm.xml que tiene toda la data y joined subclasses, sea B C B1 B2 etc...

el joined esta bien, justamente si tenes relaciones de 1 a 1 en las tablas para la herencia, te trae todo la jerarquia, como  tiene que ser, recuerda que mapeas objetos y no tablas.  Tal vez sea interesante ver si en algunos casos podes hacer uso o composicion en lugar de herencia.

 que jdbc usas?

#unapprove_message#
RE: RE: Herencia con Hibernate 31/10/2008 08:46
anonymous

Utilizo MaxBD.

El problema es que no puedo utilizar único HBM debido a que tengo el proyecto modularizado y puede que la clase B (que es hija de A) no tenga que entrar en el WAR generado, por lo que no debería estar en el mapping de A. 

#unapprove_message#
RE: RE: RE: Herencia con Hibernate 31/10/2008 20:22
jholder bueno, el tema es que ese  tipo de relaciones debieran estar en el mismo modulo, sino te conviene como te mencione, utilizar composicion en lugar de herencia
#unapprove_message#
#thread_expired#.
Sun Microsystem Logo NHT-Norwick Logo

© 2002-2007 Asociación javaHispano