No OpenJPA, quando um atributo de relacionamento possui uma anotação @OneToOne ou @ManyToOne com uma anotação @Column, a anotação @Column
é tratada como uma anotação @JoinColumn. O EclipseLink lança uma exceção que indica
que a classe de entidade deve usar @JoinColumn em vez de @Column para
mapear um atributo de relacionamento.
Esta regra sinaliza anotações @Column que são usadas com anotações OneToOne ou ManyToOne.
A correção rápida substitui a anotação @Column por uma anotação
@JoinColumn.
Todos os atributos de anotação correspondentes são copiados para a anotação @JoinColumn.
Os elementos length, precision e scale do javax.persistence.Column não são copiados.
Por exemplo, esta regra sinaliza a anotação Column na classe de entidade a seguir:
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 correção rápida substitui a anotação @Column por uma anotação @JoinColumn
e fornece as importações apropriadas.
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; } |
Para obter informações sobre esse problema e outros problemas de migração do OpenJPA para o EclipseLink, consulte o guia Migração do OpenJPA para o EclipseLink JPA: mapeamentos.