2009-04-02 23 views
1

Gekürzte Version meines Schemas mit:Problem @SecondaryTable in Hibernate

utility_company 
id int not null -- PK 
name varchar(255) not null 

utility_settings 
utility_id -- FK to utility 
use_magic tinyint(1) not null default 0 

Es gibt eine Eins-zu-Eins-Abbildung zwischen diesen beiden Tabellen. Abgesehen von der Eignung dieses Entwurfs möchte ich die Daten in diesen beiden Tabellen einem Objekt zuordnen. In Hibernate/JPA wird dies angeblich wie folgt getan:

@Entity 
@Table(name = "utility_company") 
@SecondaryTables({ 
    @SecondaryTable(
     name = "utility_settings", 
     pkJoinColumns = { 
      @PrimaryKeyJoinColumn(
       name="utility_id", referencedColumnName="id") 
     }) 
}) 
public class UtilityCompany extends AbstractEntity { 

Und so weiter.

Jeder @Column enthält den entsprechenden Tabellennamen.

Wenn ich einsetzen, bekomme ich diesen Fehler:

Cannot find the expected secondary table: 
no utility_company available for poscore.model.UtilityCompany 

Die utility_company Tabelle auf jeden Fall gibt es (eine frühere Version Karten nur UtilityCompany zum utility_company Tisch; ich hinzufüge, die utility_settings).

Gefunden zahlreiche Forenbeiträge mit dieser genauen Probleme und keine Antworten. Ich habe auch verschiedene vermeintlich legale Formen der Angabe der @SecondaryTable versucht, die alle den gleichen Effekt haben.

Wer erfolgreich @SecondaryTable verwenden, und wenn ja, das gesehen?

+0

Ich weiß, diese Frage ist sehr alt, aber ... Ich habe das gleiche Problem. Hast du es gelöst? – davioooh

Antwort

1

"Jeder @Column enthält die entsprechende Namen-Tabelle."

Versuchen Sie, den expliziten Tabellennamen für die ersten Tabellennamenspalten zu entfernen, indem Sie ihn nur für die sekundären Tabellenspalten angeben. Hat den Trick für mich gemacht.

Verwandte Themen