오늘도 어김없이 찾아온 Error 메시지.(그만)
자세히 읽어보니 아래 친절히 알려주는 에러 메시지님.
Failed to initialize JPA EntityManagerFactory: Table [prof] contains physical column name [major_id] referred to by multiple logical column names: [major_ID], [majorId]
예?
아니 제가 뭘요...?
제가 한 설정이라곤
1. 테이블에 맞게 엔티티 클래스 생성
2. Major 테이블 : Prof(프로페서) 테이블 = 1 : 1 매핑
Prof 테이블이 major_ID를 FK로 갖고 있으므로, @OneToOne&@JoinColumn을 prof 테이블에 달아줬다.
난 잘못한게 없는뎅..?
일단 문제 정의부터 해보자.
1. 문제 정의
Failed to initialize JPA EntityManagerFactory: Table [prof] contains physical column name [major_id] referred to by multiple logical column names: [major_ID], [majorId]
-> 이게 뭔말이냐하면, prof 테이블이 갖고 있는 칼럼 [major_id]를 참조하는 칼럼이 2개 있는데, 그게 [major_ID], [majorId]이다. 즉 한 개 칼럼을 지칭하는 칼럼이 2개이므로 겹친다.
2. 해결방안 접근
간단하다. 겹치는 곳을 찾아서 통일 시켜주면 된다.
근데 대체 어디가 겹쳤을까??
- 만약 prof 엔티티에서 내가 majorId를 매개변수 그대로 받았으면 문제가 됐겠지만, 지금은 이런 문제도 아니다.
- 그럼 다른 엔티티를 상속받은게 있나?? 그렇지도 않다.
어디가 문제일까 찾다보니
아.. 그 professor랑 professorDetail이랑 도메인을 분리시켜놨었는데, 여기서 문제였다.
겹쳤던 major_Id 부분을 엔티티 객체에서 바꿔줬다.
정상동작한다.
굿굿 나름 빠른 시간 내에 잘 해결했다.
'Development > TrobleShooting' 카테고리의 다른 글
Boolean true == "true"가 가능할까요? (4) | 2024.06.13 |
---|---|
[Gasip Project] JPA / could not initialize proxy - no Session. (2) | 2023.11.07 |
[Git] Push가 안되는 이유는? git remote : Permission to ---The requested URL returned error: 403 (6) | 2023.10.16 |
@Autowired에 빨간줄이 그어진 이유 (4) | 2023.10.10 |
인텔리제이 read-only가 안풀려서 도저히 코딩을 못하겠다. (0) | 2023.09.07 |