-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 
Author Message
 Post subject: Vererbung durch InheritanceType.JOINED
PostPosted: Tue Apr 15, 2008 10:14 am 
Newbie

Joined: Thu Feb 16, 2006 4:16 am
Posts: 17
Location: Austria
Hallo zusammen!

Ich habe ein sehr interessantes Problem mit der Vererbung des Types JOINED.

Hibernate version:
3.2.4 SP1

Name and version of the database you are using:
Ingres 9.0.4

Es handelt sich um unterschiedliche Todo-Einträge, die alle von einer Basisklasse erben.

Die Basis-Klasse sieht folgendermaßen aus:
Code:
@Entity
@org.hibernate.annotations.Entity(dynamicUpdate = true)
@Inheritance(strategy = InheritanceType.JOINED)
@Table(name = "uptoip_todo", schema = "ingres", uniqueConstraints = {})
public class UptoipTodo implements java.io.Serializable
{
  [...]


Die Child-Klassen sehen wie folgt aus:

1. TodoProject
Code:
@Entity
@org.hibernate.annotations.Entity(dynamicUpdate = true)
@Table(name = "uptoip_todo_project", schema = "ingres")
public class UptoipTodoProject extends UptoipTodo
{
  [...]


2. TodoIpRight
Code:
@Entity
@org.hibernate.annotations.Entity(dynamicUpdate = true)
@Table(name = "uptoip_todo_ip_right", schema = "ingres")
public class UptoipTodoIpRight extends UptoipTodo
{
  [...]


Jetzt ist hier offensichtlich kein Unterschied zu erkennen. Einzig in den Member-Variablen unterscheiden sich diese beiden Child-Klassen.

Mit folgender Query versuche ich die unterschiedlichen Todo-Einträge zu laden.
Code:
em.createQuery("FROM UptoipTodo u "
          + "WHERE u.resolveUser is null ");


In der Datenbank sind für jede Klasse Einträge hinterlegt, d.h. die Abfrage liefert für jede Child-Klasse ein Ergebnis. Das ist auch der Fall

ABER: Handelt es sich um einen Todo-Eintrag vom Typ TodoProject kann Hibernate die Information, dass es sich um einen TodoProject-Eintrag handelt nicht herstellen und gibt deshalb nur den Typ UptoipTodo retour - also die Basis-Klasse. Bei Todo-Einträgen vom Typ TodoIpRight ist das kein Problem, hier kann die Vererbungsinformation weitergeben werden.

Das bedeutet: Für die eine Vererbungsstruktur kann Hibernate die Child-Klasse in der Ergebniscollection retour liefern und für die andere Vererbungsstruktur nicht.

Ich hoffe mir kann dabei jemand weiterhelfen!!

Besten Dank im Voraus!

lG,
Alex


Top
 Profile  
 
 Post subject:
PostPosted: Fri Apr 18, 2008 2:04 am 
Newbie

Joined: Thu Feb 16, 2006 4:16 am
Posts: 17
Location: Austria
Hi,

zur besseren Veranschaulichung liefere ich zusätzlich noch die Struktur der Datenbanktabellen bezüglich der Vererbung.

Code:
CREATE TABLE uptoip_todo
(
   id INTEGER PRIMARY KEY not null,
   errorcode_id INTEGER,
   errormsg VARCHAR(100),
   creation_date DATE,
   resolve_user INTEGER,
   resolve_date DATE
);
[...]

CREATE TABLE uptoip_todo_project
(
   id INTEGER PRIMARY KEY not null,
   project_id INTEGER not null
);
ALTER TABLE uptoip_todo_project
ADD CONSTRAINT fk_uip_todoprj_uip_todo
FOREIGN KEY (id)
REFERENCES uptoip_todo(id) ON DELETE CASCADE ON UPDATE CASCADE;
[...]

CREATE TABLE uptoip_todo_ip_right
(
   id INTEGER PRIMARY KEY not null,
   ip_right_id INTEGER not null,
   rf_due_date_id INTEGER
);
ALTER TABLE uptoip_todo_ip_right
ADD CONSTRAINT fk_uip_todoipr_uip_todo
FOREIGN KEY (id)
REFERENCES uptoip_todo(id) ON DELETE CASCADE ON UPDATE CASCADE;
[...]


Möglicherweise hilft das ein wenig zum besseren Verständnis meines Problems.

Hat jemand von euch ähnliche Probleme gehabt mit der Vererbung des Typ JOINED?

Herzlichen Dank für eure Hilfe bereits im Voraus.


lG,
Alex


Top
 Profile  
 
 Post subject:
PostPosted: Tue Apr 29, 2008 3:49 am 
Newbie

Joined: Thu Feb 16, 2006 4:16 am
Posts: 17
Location: Austria
Um noch mehr Informationen zu erhalten habe ich im englischen Forum eine Anfrage abgesetzt.

http://forum.hibernate.org/viewtopic.php?p=2383847#2383847

mfg
Alex


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.