Wie Stellen Sie Zusammengesetzte Schlüssel in Hibernate mit Annotations?

Also ich reverse engineered einige Tabellen aus meiner db und wenn ich versuchen, zu speichern mein Objekt in die db bekomme ich folgende Fehlermeldung:

Initial SessionFactory creation failed.org.hibernate.AnnotationException: Ein Fremdschlüssel bezieht sich com.mycode.Block von com.mycode.Konto die falsche Nummer der Spalte. sollte 2
Exception in thread "main" java.lang.ExceptionInInitializerError

Die Domain-Objekte-Block enthält eine Reihe von Konto-Objekten:

    @OneToMany(fetch = FetchType.LAZY, mappedBy = "Block")
public Set<EAccount> getAccounts() {
    return this.Accounts;
}

Konto eines Zusammengesetzten Schlüssels, der Id und Rolle. Dieser wurde eingerichtet, in einer separaten Klasse:

@Embeddable
public class BlockAccountId implements java.io.Serializable {

private long blockOid;
private String accountRole;

public BlockAccountId() {
}

public BlockAccountId(long blockOid, String accountRole) {
    this.blockOid = blockOid;
    this.accountRole = accountRole;
}

@Column(name = "BLOCK_OID", nullable = false)
public long getBlockOid() {
    return this.blockOid;
}

public void setBlockOid(long blockOid) {
    this.blockOid = blockOid;
}

@Column(name = "ACCOUNT_ROLE", nullable = false, length = 10)
public String getAccountRole() {
    return this.accountRole;
}

public void setAccountRole(String accountRole) {
    this.accountRole = accountRole;
}

Deshalb möchte ich wissen. Wie kann ich die Tabellen Verknüpfen Blockieren und Konto auf blockOid aber immer noch sorgen für die Konto-Tabelle hat sowohl blockOid und accountRole als einen zusammengesetzten Schlüssel.

Alle Beispiele würde sehr geschätzt werden!

N. B, dies ist ein Block (Eine) Konto (Viele) - Beziehung.

Dank

InformationsquelleAutor Michael W | 2011-08-16
Schreibe einen Kommentar