한글 검색이 안될 때

Spring Data JPA의 쿼리 메서드는 내부적으로 PreparedStatement를 사용하여 SQL 쿼리를 실행한다. 이 경우, JDBC 드라이버가 기본적으로 UTF-8 인코딩을 지원하기 때문에 한글 처리하는데 문제가 없다.

하지만,JPQL 같은 은 객체지향 쿼리는 , SQL로 변환되어 실행되는 과정에서 데이터베이스와의 연결 설정, 인코딩이 적절하게 설정되지 않으면 한글 데이터가 올바르게 처리되지 않을 수 있다.

따라서 아래와 같이 설정 해주어야 한다.

<plugin>
    <groupId>com.mysema.maven</groupId>
    <artifactId>apt-maven-plugin</artifactId>
    <version>1.1.3</version>
    <configuration>
        <outputDirectory>target/generated-sources/java</outputDirectory>
        <processor>com.querydsl.apt.jpa.JPAAnnotationProcessor</processor>
        <options>
            **<querydsl.charset>UTF-8</querydsl.charset>**
        </options>
    </configuration>
</plugin>
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/dev_db?serverTimezone=UTC&useSSL=false&characterEncoding=UTF-8