-->
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 für Abstrakte Generische Klassen richtig umsetzen
PostPosted: Wed May 07, 2008 3:16 am 
Newbie

Joined: Mon Aug 21, 2006 12:44 pm
Posts: 12
Hallo zusammen,

ich habe folgende Ausgangssituation:

Eine abstracte Basisklasse mit einem generischen Element.

Code:
@Entity
class abstract abstractBaseClass <T>{
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer Id;

    private T element;
}

Ich habe folgende konkrete Klassen:

Code:
@Entity
class A extends abstractBaseClass <KlasseX>{
    @ManyToOne(targetEntity = KlasseX.class)
    public KlasseX getElement() {
    }
}

@Entity
class B extends abstractBaseClass <KlasseY>>{
    @ManyToOne(targetEntity = KlasseY.class)
    public KlasseY getElement() {
}

@Entity
class C extends abstractBaseClass <KlasseZ>{
    @ManyToOne(targetEntity = KlasseZ.class)
    public KlasseZ getElement() {
}


Das ganze funktioniert wenn ich in bei der abstractBaseClass sage
@Inheritance(strategy = InheritanceType.JOINED)

Aber aufgrund von Perfomance möchte ich das nicht haben. Am liebsten wäre mir einen Lösung wo ich jede Konkrete Klasse in eine eigene Tabelle hinterlege. Also @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) Aber das funktioniert irgendwie nicht.
Ich könnte auch mit der Lösung SINGLE_TABLE leben, aber aufgrund der generischen Datentypen klappt das auch nicht. Da gibt es dann Constraint Verletzunge von der Datenbank.

Als Datenbanksystem muss Oracle und MsSQL funktionieren. Also eine Lösung speziell für eine DB fällt auch raus.

Ich hoffe ich konnte mein Problem deutlich machen und es kann mir jemand weiter helfen.

Gruß
Santo.[/code]


Top
 Profile  
 
 Post subject:
PostPosted: Wed May 21, 2008 7:18 pm 
Expert
Expert

Joined: Tue Nov 23, 2004 7:00 pm
Posts: 570
Location: mostly Frankfurt Germany
Tableperclass ist bei Abfrage von parentklassen nicht gerade schnell. Da würde ich eher joined verwenden. MySQL könnte da aber ein Problem werden, wenn es um viele Daten geht (schlechter Query Planner).

Kannst Du ein vollständiges Beispiel inkl. Fehlermeldungen für SingleTable mal posten.

Bei Generics sollte auch die Hibernate Version möglichst aktuell sein.

_________________
Best Regards
Sebastian
---
Training for Hibernate and Java Persistence
Tutorials for Hibernate, Spring, EJB, JSF...
eBook: Hibernate 3 - DeveloperGuide
Paper book: Hibernate 3 - Das Praxisbuch
http://www.laliluna.de


Top
 Profile  
 
 Post subject:
PostPosted: Mon May 26, 2008 3:12 am 
Newbie

Joined: Mon Aug 21, 2006 12:44 pm
Posts: 12
Hallo,

erstmal danke für die Antwort. Wir arbeiten inzwischen mit @MappedSuperClass in der abstrakten Basis Klasse. Das ist für unsere Zwecke genau richtig.

Gruß
S.


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.