반응형
@ManyToOne 속성에서는 열을 사용할 수 없습니다.
속성이 다음과 같이 설정된 JPA 엔티티가 있습니다.
@ManyToOne
@Column(name="LicenseeFK")
private Licensee licensee;
그러나 JBoss 6에 도입하면 다음과 같은 오류가 발생합니다.
org.hibernate.AnnotationException: @Column(s) not allowed on a @ManyToOne property
Hibernate 3.5를 JPA 2.0 구현으로 사용하고 있습니다.
외부 키 열을 참조하려면 무엇을 사용해야 합니까?
사용하다@JoinColumn
대신@Column
:
@ManyToOne
@JoinColumn(name="LicenseeFK")
private Licensee licensee;
사용.@JoinColumn
그리고.@Column
같은 에러가 발생합니다.use: to fix로 변경합니다.
@Column
JPA@Column
주석은 다음과 같은 기본 엔티티 속성용입니다.String
,Integer
,Date
.
따라서 엔티티 속성 이름이 기본 열 이름과 다를 경우@Column
주석을 사용하여 다음과 같이 열 이름을 명시적으로 지정합니다.
@Column(name="created_on")
private LocalDate createdOn;
@JoinColumn
그@JoinColumn
주석은 외부 키 열 이름을 사용자 정의하는 데 사용되며 도면요소 연결에서만 사용할 수 있습니다.
그럼, 당신의 경우,@ManyToOne
연관지을 필요가 있습니다.@JoinColumn
:
@ManyToOne(fetch=FetchTYpe.LAZY)
@JoinColumn(name="LicenseeFK")
private Licensee licensee;
설정되는 것에 주의해 주세요.fetch
의 탓으로 돌리다FetchType.LAZY
디폴트로는 사용되고 있기 때문에, 그것은 끔찍한 전략입니다.
내 경우 @Vaishali Kulkarni의 답변이 문제를 식별하는 데 도움이 되었다.
@Column annotation 필드를 입력하지 못해 다음 필드에 영향을 주었습니다.
@Column(name = "account_id")
// I forgot to write field here
@ManyToOne
@JoinColumn(name = "customer_id")
private Customer customer;
그래서 저는 "고객" 분야에서 예외를 인정받았습니다.
언급URL : https://stackoverflow.com/questions/4121485/columns-not-allowed-on-a-manytoone-property
반응형
'sourcecode' 카테고리의 다른 글
부모 빌드 툴을 사용하는 Vue 컴포넌트를 올바르게 작성하는 방법 (0) | 2022.08.10 |
---|---|
for 루프와 for 루프 사이에는 성능 차이가 있습니까? (0) | 2022.08.10 |
Java에서의 Array Lists의 교차로 및 결합 (0) | 2022.08.09 |
vue 부트스트랩 드롭다운 목록 항목을 동적으로 추가하는 방법 (0) | 2022.08.09 |
긴 Epoch 시간(밀리초)에서 Java 8 LocalDate를 작성하려면 어떻게 해야 합니까? (0) | 2022.08.09 |