JoinColumn 어노테이션은 관계 맵핑과 함께 사용되어야 함

OpenJPA에서 관계 속성에 @Column 어노테이션이 있는 @OneToOne 또는 @ManyToOne 어노테이션이 있는 경우 @Column 어노테이션은 @JoinColumn 어노테이션으로 취급됩니다. EclipseLink는 엔티티 클래스에서 @Column 대신 @JoinColumn을 사용하여 관계 속성을 맵핑해야 함을 표시하는 예외를 처리합니다.

이 규칙은 OneToOne 또는 ManyToOne 어노테이션과 함께 사용되는 @Column 어노테이션에 플래그를 지정합니다. 자동화된 수정은 @Column 주석을 @JoinColumn 어노테이션으로 대체됩니다. 모든 해당 어노테이션 속성은 @JoinColumn 어노테이션에 복사됩니다. javax.persistence.Column 요소인 length, precisionscale은 복사되지 않습니다.

예를 들어 이 규칙은 다음 엔티티 클래스의 Column 어노테이션에 플래그를 지정합니다.


가져오기 javax.persistence.Entity;
가져오기 javax.persistence.Column;
가져오기 javax.persistence.Id;
가져오기 javax.persistence.ManyToOne;

@Entity
공용 클래스 TransactionEntity {
    @Id private int id; private long transactionNumber; private double amount; @ManyToOne
    @Column(name = "account ")
    개인용 계정 계정;}

자동화된 수정은 @Column 주석을 @JoinColumn 어노테이션으로 대체하고 적절한 가져오기를 제공합니다.


가져오기 javax.persistence.Entity;
가져오기 javax.persistence.Id;
가져오기 javax.persistence.ManyToOne;
가져오기 javax.persistence.JoinColumn;

@Entity
공용 클래스 TransactionEntity {
    @Id private int id; private long transactionNumber; private double amount; @ManyToOne
    @JoinColumn(name = "account ")
    개인용 계정 계정;}

이 문제 및 기타 OpenJPA에서 EclipseLink로의 마이그레이션 문제에 대한 정보는 OpenJPA에서 EclipseLink JPA로 마이그레이션: 맵핑 안내서를 참조하십시오.