-
spring boot jpa hibernate ddl로 인한 오류해결 !개발자의 공부는 은퇴까지 필수다/개발 2020. 5. 22. 11:29
could not execute statement; nested exception is org.hibernate.exception.
org.springframework.orm.jpa.JpaSystemException:
could not execute statement; nested exception is org.hibernate.exception.GenericJDBCException: could not execute statement
...
java.sql.SQLException: Incorrect string value: '\xED\x85\x8C\xEC\x8A\xA4...' for column 'content' at row 1
원래같아서는 이런 오류가 나면 당연히 인코딩 문제겠거니 하는데 jpa로 처음 개발하다보니
다른데에 문제가 있는건 아닌지 싶어서 멀리 돌아왔다
결론적으로 hibernate에서 자동생성해준 테이블의 인코딩이 문제였다.
yml에서 또는 properties에서 spring.mvc.hibernate.ddl-auto=create 로 설정해놓으면
테이블이 존재하지 않더라도, 쿼리가 실행될 때 테이블을 자동생성 해준다.
결국 해결방법은 테이블 인코딩을 utf8로 변경해주기.
ALTER TABLE '테이블명' CONVERT TO CHARSET utf8;
-----------------------------------------------------------------------------------------------------------
틈새로 또 한가지 !
jdbc 설정을 위해서 build.gradle에 compile('mysql:mysql-connector-java') 를 추가하고
(properties 또는 ) yml에 다음과 같은 필수설정요소를 추가했는데
>> spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
com.mysql.cj.jdbc.Driver가 빨간색으로 뜨면서 제대로된 빌드가 안되는것이다.
이거 진짜 며칠 찾았는데 버전문제였나보다. 확실한 이유는 더 찾아봐야 알겠지만,
compile('mysql:mysql-connector-java')
>
compile('mysql:mysql-connector-java:8.0.20')
이렇게 확실한 버전까지 입력해주니 그때서야 정상동작하더라
'개발자의 공부는 은퇴까지 필수다 > 개발' 카테고리의 다른 글
Spring boot로 실행시키기, 개발환경 속도를 더 빠르게 (0) 2020.08.20 intellij package 보기 형식 변경하기 (2) 2020.08.19 Spring boot 프로젝트 생성, Spring 사이트 이용하기 (0) 2020.08.19 개발환경) gradle, intelliJ, spring-boot, microservice-architecture / js 절대경로 설정하기 (0) 2020.05.20 스프링 부트와 AWS로 혼자 구현하는 웹서비스 책을 읽으며 lombok, intelliJ, gradle build 시작 (2) 2020.05.15