Wenn in OpenJPA ein Beziehungsattribut eine @OneToOne- oder eine @ManyToOne-Annotation
mit einer @Column-Annotation hat, wird die @Column-Annotation als
@JoinColumn-Annotation behandelt. EclipseLink löst eine Ausnahme aus, die anzeigt, dass die Entitätsklasse
@JoinColumn anstelle von @Column verwenden muss, um ein Beziehungsattribut zuzuordnen.
Diese Regel markiert @Column-Annotationen, die mit OneToOne- und ManyToOne-Annotationen verwendet werden.
Eine automatische Korrektur ersetzt die @Column-Anmerkung durch eine @JoinColumn bemerkung ersetzt.
Alle entsprechenden Annotationsattribute werden in die @JoinColumn-Annotation kopiert.
Die javax.persistence.Column-Elemente length, precision
und scale werden nicht kopiert.
Diese Regel markiert beispielsweise die Column-Annotation in der folgenden Entitätsklasse:
import javax.persistence.Entity; import javax.persistence.Column; import javax.persistence.Id Importieren javax.persistence.ManyToOne; @Entity Allgemein zugängliche Klasse TransactionEntity { @Id private int id; private long transaktionsnummer; private double amount; @ManyToOne @Column(name = "account ") privates Konto}
Eine automatische Korrektur ersetzt die @Column-Anmerkung durch eine @JoinColumn annotation und liefert die entsprechenden Importe.
import javax.persistence.Entity; import javax.persistence.Id Importieren javax.persistence.ManyToOne; Importieren javax.persistence.JoinColumn; @Entity Allgemein zugängliche Klasse TransactionEntity { @Id private int id; private long transaktionsnummer; private double amount; @ManyToOne @JoinColumn(name = "account ") privates Konto}
Informationen zu diesem Problem und zu weiteren Problemen bei der Migration von OpenJPA auf EclipseLink finden Sie in der Veröffentlichung OpenJPA to EclipseLink JPA Migration: Mappings.