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. Egy automatikus javítás a @Column annotációt @JoinColumn annotációra cseréli. 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;}

Egy automatikus javítás a @Column annotációt @JoinColumn annotációra cseréli, é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.