Notice
Recent Posts
Recent Comments
Link
반응형
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 딕셔너리
- post
- 오버라이딩
- 머신러닝
- 알고리즘
- HTTP
- 강화학습
- 너비우선탐색
- 지도학습
- 파이썬 오류
- 딥러닝
- 프로그래머스
- 코테
- 비지도학습
- 캐싱
- 깊이우선탐색
- bineary search
- 멱등
- 파이썬 알고리즘
- Merge sort
- 백준
- 스택과 힙
- 코딩테스트
- rest api
- 이진탐색
- 자바
- BOJ
- 코딩
- 파이썬
- 해시
Archives
- Today
- Total
chae._.chae
Error : Encountered a duplicated sql alias [id] during auto-discovery of a native-sql query 본문
Error
Error : Encountered a duplicated sql alias [id] during auto-discovery of a native-sql query
walbe0528 2022. 12. 23. 18:39728x90
반응형

에러 내용
Encountered a duplicated sql alias [id] during auto-discovery of a native-sql query;
nested exception is org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql alias [id] during auto-discovery of a native-sql query
스프링 부트에서 내가 작성한 쿼리문의 id값을 제대로 인식하지 못한다고 나왔다.
동일한 alias name이 있으면 발생하는 에러라고 한다. 같은 이름이 있어 두 이름에 서로 다른 이름을 부여하면 해결된다고 한다.
(내가 작성한 쿼리문에서는 id값을 challenge 테이블에서만 사용하는데 왜 제대로 인식하지 못하지? 라는 의문은 여전히 남아있음..)
해결 방법
SELECT * FROM Challenge c LEFT OUTER JOIN ChallengeUser cu on c.id = cu.challenge_id
WHERE c.id NOT IN (SELECT cu.challenge_id FROM ChallengeUser cu WHERE cu.user_id = :userId) ORDER BY c.cur_num DESC;
그래서 Entity에서 인식하지 못하는 id 필드에 @Column(name="c_id")라고 이름을 지정하고,
쿼리문에서 id를 c_id로 수정해주었다.
SELECT * FROM Challenge c LEFT OUTER JOIN ChallengeUser cu on c.c_id = cu.challenge_id
WHERE c.c_id NOT IN (SELECT cu.challenge_id FROM ChallengeUser cu WHERE cu.user_id = :userId) ORDER BY c.cur_num DESC;
참고 :
https://memo.polypia.net/archives/1214
728x90