Viszonyleképezésekhez JoinColumn annotációkat kell használni

Az OpenJPA megvalósításban, amikor egy viszony attribútumnak van egy @OneToOne vagy egy @ManyToOne annotációja egy @Column annotációval, akkor a @Column annotáció úgy működik, mintha egy @JoinColumn annotáció lenne. Az EclipseLink egy kivételt dob, ami jelzik, hogy az egyedosztálynak a @JoinColumn annotációt kell használnia a @Column helyett egy viszony attribútum leképezéséhez.

Ez a szabály megjelöli a @Column annotációkat, amelyek a OneToOne vagy ManyToOne annotációkkal együtt vannak használatban. A gyorsjavítás lecseréli a @Column annotációt egy @JoinColumn annotációra. Minden megfelelő annotáció attribútum át lesz másolva a @JoinColumn annotációba. A length, precision és scale javax.persistence.Column elemek nem lesznek átmásolva.

Például ez a szabály megjelöli a Column annotációt a következő osztályokban:


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;
}

A gyorsjavítás lecseréli a @Column annotációt egy @JoinColumn annotációra, és biztosítja a megfelelő importálásokat.


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;
}

A problémával és más OpenJPA - EclipseLink átállítási problémákkal kapcsolatos információkért tekintse meg az OpenJPA - EclipseLink JPA átállítás: Leképezések útmutatót.