-->
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.  [ 2 posts ] 
Author Message
 Post subject: Inheritence und Annotations
PostPosted: Mon May 28, 2007 10:56 am 
Newbie

Joined: Tue Jan 23, 2007 5:03 am
Posts: 5
Hallo zusammen,

ich beschäftige mich seit kurzem mit Hibernate-Annotations und bin nach einigen Anfangsschwierigkeiten auch schon relativ weit gekommen.

Ein Problem, mit dem ich noch zu kämpfen habe ist eine Vererbungsstruktur, die ich nach den References und Tutorials noch nicht ganz auflösen konnte.

Ich habe eine Klasse News. Von dieser erbt eine Klasse AbstractAdHocNews, von der wiederum einmal SmsNews und EmailNews erben.

Mein Ziel ist es jetzt zwei Tabellen in der Datenbank zu haben. Eine für die News und eine für die AbstractAdHocNews. Meine Versuche mit SINGLETABLE und CLASS_PER_TABLE haben alle nicht so gefruchtet.

Logisch wäre es für mich allerdings folgendermaßen:

## News ##

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class News implements Serializable {
. . .
}

## AbstractAdHocNews ##

@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="NEWS_TYPE",discriminatorType=DiscriminatorType.STRING)
public abstract class AbstractAdhocNews extends News {
. . .
}

## SmsNews ##

@Entity
@DiscriminatorValue("SMS_NEWS")
public class SmsNews extends AbstractAdhocNews {
. . .
}

## EmailNews ##

@Entity
@DiscriminatorValue("EMAIL_NEWS")

Dies führt allerdings nicht zum Erfolg. Eher werden nun News-Tabelle, AbstractAdHocNews-Tabelle, SmsNews-Tabelle und Email-Tabelle erstellt.

Nun frage ich mich, ob die Inheritance-Strategie nicht überschrieben werden kann und -- wenn dies der Fall sein sollte -- ich dies so lösen kann, dass ich eben nur zwei Tabellen habe:

News-Tabelle mit allen Newseinträgen von normalen News und AdHocNews, sowie eine Tabelle, welche über eine DiscriminatorColumn die Unterscheidung zwischen Email und SMS vornimmt.

Für Hinweise bin ich dankbar

Gruß

Henning


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 01, 2007 12:37 am 
Newbie

Joined: Tue Jan 23, 2007 5:03 am
Posts: 5
Aha . . . Referenz sagt irgendwo in einem Hinweis (mehr als Randbemerkung zu bezeichnen), dass alle @inheritence-Strategien nur auf dem Top-Level funktionieren.

Ein Überschreiben der Strategie ist als nicht möglich.

Gruß

Henning


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 2 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.