Framework/SpringBoot

[SpringBoot] AnnotationException: targets an unknown entity named : 조인 맵핑 시 데이터 타입이 다를 경우 발생하는 에러

  • -

에러 메세지

Caused by: org.hibernate.AnnotationException: Association 'org.coteis.domain.article.Article.algorithmNo' targets an unknown entity named 'java.lang.Integer'

발생 배경

@ManyToOne
@JoinColumn(name = "algorithm_no")
private Integer algorithmNo;

@ManyToOne
@JoinColumn(name = "difficulty_no")
private Integer difficultyNo;

@ManyToOne
@JoinColumn(name = "language_no")
private Integer languageNo;

@ManyToOne
@JoinColumn(name = "previoustest_no")
private Integer previoustestNo;

@joinColumn을 하는 코드를 추가하자 오류가 발생하였다. 

조인 맵핑을 하는 과정에서 에러가 발생한 것이다.

원인 파악

에러 메세지를 읽어보면

targets an unknown entity named 'java.lang.Integer'

라는 메세지가 있다. 이 메세지를 통해 왜 발생했는지 추론할 수 있었다.

 

 

아... 데이터 타입이 Integer가 아니라 매핑한 테이블이겠구나...

 

감을 믿고 Integer로 되어 있는 부분을 각각의 Entity로 바꿔주었다

 

해결 방법

@ManyToOne
@JoinColumn(name = "algorithm_no")
private Algorithm algorithmNo;

@ManyToOne
@JoinColumn(name = "difficulty_no")
private Difficulty difficultyNo;

@ManyToOne
@JoinColumn(name = "language_no")
private Language languageNo;

@ManyToOne
@JoinColumn(name = "previoustest_no")
private Previoustest previoustestNo;

예상대로 조인한 칼럼의 데이터 타입으로 인한 오류였다

Algorithm 엔티티의 algorithmNo 의 데이터 타입인 Integer가 아닌

Algorithm이 데이터 타입이여야 했다!!

에러를 해결하면서

조인 맵핑을 처음 해본다면 한 번 쯤 겪을 실수일수도...?

도움이 되었으면 좋겠다!

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.