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
nyilvános osztály TransactionEntity {
    @Id privát int id; privát hosszú transactionNumber; privát dupla összeg; @ManyToOne
    @Column(név = "fiók ")
    privát fiók fiók;}

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
nyilvános osztály TransactionEntity {
    @Id privát int id; privát hosszú transactionNumber; privát dupla összeg; @ManyToOne
    @JoinColumn(név = "fiók ")
    privát fiók fiók;}

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.