작성
·
85
0
영한님 강의에서 where절에 들어가는 모든 구분은 전부
영어입니다.
ex) where(member.username.eq("member1"))
근데 저는 한글데이터를 넣고 where을 해보니 원하는 결과가 조회되지않았고 다음과같은 로그가 출력됩니다.
org.hibernate.orm.jdbc.bind : binding parameter (1:VARCHAR) <- [%2프%]
/**/prep5.setString(1, "%2\u1111\u1173%");
'2프'라는 글자를 where절에 넣어서 조회하려하고 hibernate에서는 실제로 %2프% 라는 원하는 결과를 바인딩 해줬습니다. 하지만 h2db의 로그에서는 2는 제대로지만 프가 ㅍ과 ㅡ를 분리하여 유니코드로 치환된 상태로 바인딩이 되서 분명 데이터가 있음에도 아무데이터도 조회되지않습니다. h2db에서 prepareStatement에 한글을 바인딩할때 깨지는현상 어떻게 해결할 수 있나요??
답변 2
0
안녕하세요. 손민혁님
도움을 드리고 싶은데, 저희도 처음보는 현상이어서 좀 더 확인을 해봐야 할 것 같아요.
다음 내용을 남겨주시면 저희도 한번 같은 환경에 맞추어 확인해볼게요.
사용하는 OS 환경을 알려주세요.
사용하는 자바 버전을 알려주세요.
설치한 H2 데이터베이스 버전을 알려주세요(라이브러리X, h2.sh로 실행하는 H2 데이터베이스의 버전)
실제 동작하는 전체 프로젝트를 ZIP파일로 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.
주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요
추가로 다음 내용도 코멘트 부탁드립니다.
1. 문제 영역을 실행할 수 있는 방법
2. 문제가 어떻게 나타나는지에 대한 상세한 설명 (오류 화면, 오류 로그 포함)
링크: 공식 서포터즈
링크: 자주하는 질문
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
손민혁님께서 경험하신 H2DB와 한글 관련 문제는 데이터 처리 시 인코딩 문제에 의해 발생할 수 있는 현상입니다. 이 문제는 대개 데이터베이스 설정 또는 연결 문자열에서 UTF-8 인코딩이 누락되었을 때 발생할 수 있습니다. 한글이 제대로 저장되고 검색되도록 하기 위해서는 데이터베이스와 애플리케이션 모두에서 UTF-8을 사용하도록 설정해야 합니다.
다음은 이 문제를 해결하는 데 도움이 될 수 있는 몇 가지 제안입니다.
H2 데이터베이스 URL 확인: JDBC URL에 ;DB_CLOSE_DELAY=-1
로 설정하시고, init=RUNSCRIPT FROM 'classpath:init.sql';
설정 부분이 있다면 확인해주세요. H2 데이터베이스를 사용할 때 인코딩 문제가 발생하지 않도록 DB_CLOSE_ON_EXIT=FALSE
를 추가할 수 있습니다.
JDBC URL 내 인코딩 설정: ;MODE=MySQL;AUTO_SERVER=TRUE;DB_CLOSE_ON_EXIT=FALSE;DATABASE_TO_UPPER=false;
뒤에 ;CHARACTER_SET=UTF8
을 추가하여 인코딩 설정을 확인하세요.
H2 데이터베이스 인코딩 설정: H2 콘솔을 통해 SET COLLATION UTF8
명령을 실행하여 데이터베이스의 기본 인코딩 설정을 명시적으로 설정해주세요.
Hibernate 설정 확인: hibernate.connection.characterEncoding=UTF-8
및 hibernate.connection.useUnicode=true
속성들을 포함하여 Hibernate 설정에서 인코딩을 명시적으로 설정했는지 확인합니다.
ApplicationProperties/Configuration 파일 확인: spring.datasource.url
에 characterEncoding=UTF-8
과 같은 설정을 명시적으로 추가하여야할 수도 있습니다.
유사한 문제를 다루는 인프런 게시물을 추천해 드릴 수 있으면 좋겠지만, 현재로서는 정확한 URL을 제공드리기 어렵습니다. 다음 링크를 통해 사용자들이 동일한 문제로 질문한 Q&A를 참고하시기를 권장합니다.
질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
위 내용을 전부 해봤지만 안되네요. 사실 이전 gpt 통해서도 유사한 답변들을 들었고 전부 안됐습니다. 특히 CHARACTER_SET=UTF8 이거 추가하라고하는건 웃음벨이네요. 왜냐면 그런 설정을 지원하지않는다는 오류가 뜨거든요