Ich sitze seit einer Woche an einem Problem und bekomme es nicht gelöst. Es geht um die Darstellung einer Datenbanktabelle mit Hibernate Annotations.
Die Tabelle enthält einen zusammengesetzten Primärschlüssel aus 3 Spalten und 2 weitere Spalten. Von den 3 Spalten des Primärschlüssels sind 2 Spalten Fremdschlüssel auf 2 weitere Tabellen.
Ich habe schon sehr viel ausprobiert. Ich poste mal meine Version der EmbeddidId-Variante.
Weiterhin habe ich auch die IdClass-Variante ohne Erfolg ausprobiert.
Als Fehlermeldung bekomme ich:
Ich bin mir sicher, dass kein Schreibfehler vorliegt.
Versteht jemand mein Problem. Ich habe schon gelesen, dass Composite Primary Keys noch nicht vollends von Hibernate Annotations unterstützt werden. Mir ist auch klar, dass das Design der "Problem"-Tabellen nicht das beste ist. Aber da lässt sich im Moment nichts ändern, weil es sich um eine Datenbank im Echtbetrieb handelt.
Mapping-Tabellen, deren Primary-Key aus 2 Foreign-Keys besteht, bekomme ich mit den Annotations abgebildet. Ich MUSS das Problem lösen. Bitte helft mir, sonst muss ich für diese Tabelle den alten Weg gehen und mit Connection, PreparedStatements, Resultsetsetc. pp. arbeiten.
Und das will ich wirklich nicht!
Vielen Dank fürs Lesen. Hoffentlich kann mir jemand bei meinem Problem helfen.
Gruss aus Trier...
Die Tabelle enthält einen zusammengesetzten Primärschlüssel aus 3 Spalten und 2 weitere Spalten. Von den 3 Spalten des Primärschlüssels sind 2 Spalten Fremdschlüssel auf 2 weitere Tabellen.
Ich habe schon sehr viel ausprobiert. Ich poste mal meine Version der EmbeddidId-Variante.
Code:
@Entity
@Table(name = "FIRST")
public class TestCompositeTable {
@EmbeddedId
private TestCompositeTablePk ;
@Column(name = "int1") private int a;
@Column(name = "int2") private int b;
@Column(name = "firstColum") private FirstFKTable fkFirst;
@Column(name = "secondColumn") private SecondFKTable fkSecond;
... Konstruktoren, Getter, Setter ...
}
public class TestCompositeTablePk implements Serializable {
/**
* generated serial version Id
*/
protected static final long serialVersionUID = 3019154397407148518L;
public Long pkFirst;
public Long pkSecond;
public Long pkThird;
... Konstruktoren, Getter, Setter ...
public int hashCode() { ... }
public boolean equals( Object _obj ) { ... }
}
Weiterhin habe ich auch die IdClass-Variante ohne Erfolg ausprobiert.
Als Fehlermeldung bekomme ich:
Code:
WARN - JDBCExceptionReporter - SQL Error: 904, SQLState: 42000
ERROR - JDBCExceptionReporter - ORA-00904: "TESTCOMPOSITETABLE_"."PKFIRST": invalid identifier
Ich bin mir sicher, dass kein Schreibfehler vorliegt.
Versteht jemand mein Problem. Ich habe schon gelesen, dass Composite Primary Keys noch nicht vollends von Hibernate Annotations unterstützt werden. Mir ist auch klar, dass das Design der "Problem"-Tabellen nicht das beste ist. Aber da lässt sich im Moment nichts ändern, weil es sich um eine Datenbank im Echtbetrieb handelt.
Mapping-Tabellen, deren Primary-Key aus 2 Foreign-Keys besteht, bekomme ich mit den Annotations abgebildet. Ich MUSS das Problem lösen. Bitte helft mir, sonst muss ich für diese Tabelle den alten Weg gehen und mit Connection, PreparedStatements, Resultsetsetc. pp. arbeiten.
Und das will ich wirklich nicht!
Vielen Dank fürs Lesen. Hoffentlich kann mir jemand bei meinem Problem helfen.
Gruss aus Trier...