In OpenJPA, quando un attributo della relazione ha sia un'annotazione @OneToOne che una @ManyToOne con un'annotazione @Column, l'annotazione @Column viene gestita come un'annotazione @JoinColumn. EclipseLink genera un'eccezione che indica che la classe di entità deve utilizzare @JoinColumn invece di @Column per associare un attributo di relazione.
Questa regola contrassegna le annotazioni @Column che utilizzano le annotazioni OneToOne o ManyToOne.
Una correzione automatica sostituirà l'annotazione @Column con un'annotazione @JoinColumn...con un'annotazione.
Tutti gli attributi di annotazione corrispondenti vengono copiati nell'annotazione @JoinColumn.
Gli elementi di javax.persistence.Column, length, precision e scale, non vengono copiati.
Ad esempio, questa regola contrassegna l'annotazione Column nella classe di entità seguente:
importa javax.persistence.Entity; importa javax.persistence.Column; Importazione javax.persistence.Id; importa javax.persistence.ManyToOne; @Entity Classe pubblica TransactionEntity { @Id private int id; private long transactionNumber; private double amount; @ManyToOne @Column(name = "account ") Account privato ;}
Una correzione automatica sostituirà l'annotazione @Column con un'annotazione @JoinColumn e fornisce le importazioni appropriate.
importa javax.persistence.Entity; Importazione javax.persistence.Id; importa javax.persistence.ManyToOne; importa javax.persistence.JoinColumn; @Entity Classe pubblica TransactionEntity { @Id private int id; private long transactionNumber; private double amount; @ManyToOne @JoinColumn(name = "account ") Account privato ;}
Per informazioni su questo problema e altri problemi della migrazione da OpenJPA a EclipseLink, consultare la guida OpenJPA to EclipseLink JPA Migration: Mappings.