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.
Die Schnellkorrektur ersetzt die @Column-Annotation durch eine
@JoinColumn-Annotation.
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; import javax.persistence.ManyToOne; @Entity public class TransactionEntity { @Id private int id; private long transactionNumber; private double amount; @ManyToOne @Column(name="account") private Account account; } |
Die Schnellkorrektur ersetzt die @Column-Annotation durch eine
@JoinColumn-Annotation und stellt die entsprechenden import-Anweisungen bereit.
import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.ManyToOne; import javax.persistence.JoinColumn; @Entity public class TransactionEntity { @Id private int id; private long transactionNumber; private double amount; @ManyToOne @JoinColumn(name="account") private Account account; } |
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.