에러 메세지
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이 데이터 타입이여야 했다!!
에러를 해결하면서
조인 맵핑을 처음 해본다면 한 번 쯤 겪을 실수일수도...?
도움이 되었으면 좋겠다!
'Framework > SpringBoot' 카테고리의 다른 글
[Spring] Rest Template란? (0) | 2023.09.09 |
---|---|
[Spring] Spring에서 깃허브 OAuth 로그인하기 (0) | 2023.09.01 |
[SpringBoot] @OneToMany, @ManyToOne, @ManyToMany 연관 관계 매핑, @JoinTable (0) | 2023.08.30 |
[SpringBoot]스프링 시큐리티란? (Spring Security) (0) | 2023.08.23 |
[SpringBoot] CommandAcceptanceException : table명이 예약어일 때 발생하는 Exception (0) | 2023.06.10 |