-->
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 JoinTable
PostPosted: Thu Sep 06, 2007 8:58 am 
Newbie

Joined: Sun Nov 05, 2006 1:41 pm
Posts: 4
Hallo,

hab ein kleines Problem bei der Vererbung.

FehlerMeldung:
SCHWERWIEGEND: Column count does not match in statement [insert into PersonImpl (_firstName, Address_FK, object_pk) values (?, ?, ?)]

Code:
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class PersonImpl {

    @Id
    public long object_pk;

    public String _firstName;

    @OneToOne
    @JoinTable(name = "PersonAddress", joinColumns = @JoinColumn(name = "Person_fk"), inverseJoinColumns = @JoinColumn(name = "Address_FK"))
    public AddressImpl _address;
}

Code:
@Entity
public class CustomerImpl extends PersonImpl {

    private String _customerNumber;
}


Kommentar:
Ohne die Jointable funktioniert alles Problemlos.

Ist dieses Mapping mit Hibernate ueberhaupt moeglich ?

siehe:
http://forum.hibernate.org/viewtopic.php?t=978497&highlight=join+jointable+inheritance

Dort wird allerdings JOINED als Strategie benutzt.

Falls im obigen Code kein Fehler ist, wie mapt ihr dann solche Beziehungen ? SingleTable ist fuer mich ueberhaupt keine Option!

ps: Hab Hibernateversion vergessen: 3.2 DB: HSQL


Top
 Profile  
 
 Post subject:
PostPosted: Thu Sep 06, 2007 6:06 pm 
Expert
Expert

Joined: Tue Nov 23, 2004 7:00 pm
Posts: 570
Location: mostly Frankfurt Germany
Warum nicht SingleTable bei 1:1?

Ansonsten würde ich das auf höchstens zwei Tabellen verteilen. Du kannst die ID der Person als Id bei der Adresse übernehmen.

Eine Zuordnungstabelle ist bei 1:1 sehr ungewöhnlich und von der Performance auf jeden Fall schlechter als zwei Tabellen und noch viel schlechter als eine Tabelle.

_________________
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: Fri Sep 07, 2007 3:26 am 
Newbie

Joined: Sun Nov 05, 2006 1:41 pm
Posts: 4
Quote:
Eine Zuordnungstabelle ist bei 1:1 sehr ungewöhnlich und von der Performance auf jeden Fall schlechter als zwei Tabellen und noch viel schlechter als eine Tabelle.


Die Performance ist ist bei uns komplett zu vernachlaesigen. Im Vordergrund steht ein sehr sauberer DB Entwurf bzw. eine möglichst grosse Kapselung der einzelnen Tabellen (Aus diesem Grund auch eine Join Table).

Quote:
Du kannst die ID der Person als Id bei der Adresse übernehmen.

Ebenso sollen die PKs eineindeutig in der DB sein. Somit verbietet es sich PKs in mehreren Tabellen zu benutzen.

Die Gründe für die Entscheidungen sind vielfältig und von aussen vielleicht nicht unbedingt nachzuvollziehen. Aber Sie ergeben in unserem Umfeld durchaus einen Sinn.

Nochmals meine eigentlichen Frage:
Ist das beschriebene Mapping mit Hiberante möglich oder nicht ?


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.