상황
새로운 로컬에서 사용할 개발환경을 다시 맞추었다 ( mysql 설치, intelliJ 설치, java 설치 등)
프로젝트를 클론한 후, 실행 시 기존에 문제 없던 group by 절에서 문제가 발생하였다.
쿼리문엔 문제가 없는데 왜 일까?
오류 내용
### Cause: java.sql.SQLSyntaxErrorException:
Expression #10 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'emoticonshop.el.like_id'
which is not functionally dependent on columns in GROUP BY clause;
nested exception is java.sql.SQLSyntaxErrorException:
Expression #10 of SELECT list is not in GROUP BY clause and contains nonaggregated column
'emoticonshop.el.like_id' which is not functionally dependent on columns in GROUP BY clause;
this is incompatible with sql_mode=only_full_group_by] with root cause
원인
sql_mode 에서 only_full_group_by 절이 어쩌구..
sql_mode 를 확인해 보자
// sql_mode 확인
show variables like 'sql_mode'
다음과 같이 sql_mode 에 GROUP_FULL_GROUP_BY 가 존재하는데
의미인 즉슨,
group by 절을 사용할 경우, 모든 컬럼을 사용해야한다는 것이다.
언제 저런 옵션이 ... ? ( 새로 설치하며 dafalut 값으로 설정되었나 싶다 )
group by 절을 모두 바꿔줄 순 없으므로 설정을 변경해보자
해결
GROUP_FULL_GROUP_BY 만 비활성화 하자
// 해당옵션만 비활성화
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
성공!!
db 와 연동이 잘 되어 값을 받아볼 수 있게 되었다.
'TIL' 카테고리의 다른 글
IntelliJ | Terminate vs Disconnect (0) | 2023.05.10 |
---|---|
DB | MySQL 에서 스키마 및 데이터 export & import (0) | 2023.05.09 |
IntelliJ | jdk 설정 - No SDK (2) | 2023.05.09 |
모듈, 모듈화 (0) | 2023.04.20 |
용어 정리 | 로깅, 비즈니스 로직, 트랜잭션 (0) | 2023.04.20 |