티스토리 뷰

[JPA]

[JPA] 한글 깨짐

handr95 2021. 2. 28. 21:17
반응형

DB insert 테스트 코드를 만들고 돌려보았다.

    @Autowired
    private ProjectService projectService;
    @Autowired
    private TaskService taskService;

    @Test
    public void ProjectAndTaskInsertTest() {
        String projectTitle = "프로젝트 제목";
        String projectDesc = "프로젝트 설명";
        Short openYn = 1;
        Project project = new Project(projectTitle, projectDesc, openYn);

        projectService.save(project);

        Long userNo = 1L;
        User findUser = userService.findByUserNo(userNo).get();

        String taskTitle = "일감 제목";
        String taskDesc = "일감 내용";
        LocalDateTime startDt = LocalDateTime.now();
        LocalDateTime endDt = LocalDateTime.now();
        TaskState taskState = TaskState.NEW;

        Task task = new Task(taskTitle, taskDesc, startDt, endDt, taskState, project, findUser);
        taskService.save(task);

        Task findTask = taskService.findByTaskNo(task.getTaskNo()).get();
        assertThat(findTask).isNotNull();
        assertThat(findTask.getTaskTitle()).isEqualTo(taskTitle);
    }

 

 

 

1. MariaDB의 인코딩 설정을 확인해보았다.

show variables like 'c%';

DB 설정 확인
테이블 설정 확인

만약에 utf-8이 아닌값이 들어가있다면,

~\MariaDB 10.2\data\my.ini 파일에 아래 설정을 추가해주고 mariaDB를 재시작 해주자. 

[client]
...
default-character-set=utf8mb4
...
[mysql]
...
default-character-set=utf8mb4
...
[mysqld]
...
collation-server = utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
character-set-server = utf8mb4
...

 

INSERT INTO `sgw`.`task` (`PROJECT_NO`, `MANAGER_NO`, `TASK_TITLE`, `TASK_DESC`, `START_DT`, `END_DT`, `STATE`, `REG_DT`, `UPDATE_DT`) VALUES ('15', '13', '테스트\r\n', '테스트', '2021-02-28 20:46:04', '2021-02-28 20:46:05', '0', '2021-02-28 20:46:11', '2021-02-28 20:46:12');

설정에도 문제는 없었고, DB에 직접 insert 시에 한글이 안깨지고 잘들어가는것도 확인 되었다.

 

그래서 DB는 패쑤..

 

2. intellij 설정 확인

[Intellij] - [File] - [Settings] - [Editor] - [File Encodings]에서 파일 설정이 UTF-8로 되어있는지 확인

 

파일 인코딩 테스트

음...여기도 잘 설정이 되어있다. 여기도 패쑤

 

 

3. jdbc connect 설정

database.sgw.driverClass=org.mariadb.jdbc.Driver
database.sgw.jdbcUrl=jdbc:mariadb://127.0.0.1:3306/sgw?useUnicode=true&characterEncoding=utf8
database.sgw.userName=root
database.sgw.password=1234
database.sgw.minimumIdle=2
database.sgw.maximumPoolSize=5
database.sgw.databasePlatform=org.hibernate.dialect.MariaDB102Dialect

 

음... 여기도 문제가 없어보인다.

 

 

4. 그래서 로그를 다시 확인해보았다.

 

Hibernate: insert into PROJECT (REG_DT, UPDATE_DT, OPEN_YN, PROJECT_DESC, PROJECT_TITLE) values (?, ?, ?, ?, ?)
Hibernate: select user0_.USER_NO as user_no1_2_, user0_.EMAIL as email2_2_, user0_.LOGIN_DT as login_dt3_2_, user0_.NICK_NM as nick_nm4_2_, user0_.PWD as pwd5_2_, user0_.REG_DT as reg_dt6_2_, user0_.ROLE as role7_2_ from USER user0_ where user0_.USER_NO=?
Hibernate: insert into TASK (REG_DT, UPDATE_DT, END_DT, PROJECT_NO, START_DT, STATE, TASK_DESC, TASK_TITLE, MANAGER_NO) values (?, ?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: select task0_.TASK_NO as task_no1_1_, task0_.REG_DT as reg_dt2_1_, task0_.UPDATE_DT as update_d3_1_, task0_.END_DT as end_dt4_1_, task0_.PROJECT_NO as project_9_1_, task0_.START_DT as start_dt5_1_, task0_.STATE as state6_1_, task0_.TASK_DESC as task_des7_1_, task0_.TASK_TITLE as task_tit8_1_, task0_.MANAGER_NO as manager10_1_ from TASK task0_ where task0_.TASK_NO=?
Hibernate: select project0_.PROJECT_NO as project_1_0_0_, project0_.REG_DT as reg_dt2_0_0_, project0_.UPDATE_DT as update_d3_0_0_, project0_.OPEN_YN as open_yn4_0_0_, project0_.PROJECT_DESC as project_5_0_0_, project0_.PROJECT_TITLE as project_6_0_0_ from PROJECT project0_ where project0_.PROJECT_NO=?
Hibernate: select user0_.USER_NO as user_no1_2_0_, user0_.EMAIL as email2_2_0_, user0_.LOGIN_DT as login_dt3_2_0_, user0_.NICK_NM as nick_nm4_2_0_, user0_.PWD as pwd5_2_0_, user0_.REG_DT as reg_dt6_2_0_, user0_.ROLE as role7_2_0_ from USER user0_ where user0_.USER_NO=?

 

현재 설정으로는 파라미터에 어떤 값이 들어가는지 확인이 안되어 해당 설정을 application.properties에 추가해주도록 했다.

# Log JDBC bind parameter runtime arguments
logging.level.org.hibernate.type=trace

 

Hibernate: insert into PROJECT (REG_DT, UPDATE_DT, OPEN_YN, PROJECT_DESC, PROJECT_TITLE) values (?, ?, ?, ?, ?)
2021-02-28 21:05:24.137 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [TIMESTAMP] - [2021-02-28T21:05:24.034]
2021-02-28 21:05:24.139 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [2] as [TIMESTAMP] - [2021-02-28T21:05:24.034]
2021-02-28 21:05:24.140 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [3] as [SMALLINT] - [1]
2021-02-28 21:05:24.142 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [4] as [VARCHAR] - [프로젝트 설명]
2021-02-28 21:05:24.144 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [5] as [VARCHAR] - [프로젝트 제목]
Hibernate: select user0_.USER_NO as user_no1_2_, user0_.EMAIL as email2_2_, user0_.LOGIN_DT as login_dt3_2_, user0_.NICK_NM as nick_nm4_2_, user0_.PWD as pwd5_2_, user0_.REG_DT as reg_dt6_2_, user0_.ROLE as role7_2_ from USER user0_ where user0_.USER_NO=?
2021-02-28 21:05:24.581 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [BIGINT] - [1]
2021-02-28 21:05:24.585 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([user_no1_2_] : [BIGINT]) - [1]
2021-02-28 21:05:24.588 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([email2_2_] : [VARCHAR]) - [test@gmail.com]
2021-02-28 21:05:24.590 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([login_dt3_2_] : [TIMESTAMP]) - [2020-12-15T20:48:50]
2021-02-28 21:05:24.590 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([nick_nm4_2_] : [VARCHAR]) - [testUser001]
2021-02-28 21:05:24.590 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([pwd5_2_] : [VARCHAR]) - [123456]
2021-02-28 21:05:24.590 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([reg_dt6_2_] : [TIMESTAMP]) - [2020-12-15T20:48:50]
2021-02-28 21:05:24.590 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([role7_2_] : [VARCHAR]) - [null]
Hibernate: insert into TASK (REG_DT, UPDATE_DT, END_DT, PROJECT_NO, START_DT, STATE, TASK_DESC, TASK_TITLE, MANAGER_NO) values (?, ?, ?, ?, ?, ?, ?, ?, ?)
2021-02-28 21:05:24.618 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [TIMESTAMP] - [2021-02-28T21:05:24.612]
2021-02-28 21:05:24.618 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [2] as [TIMESTAMP] - [2021-02-28T21:05:24.612]
2021-02-28 21:05:24.618 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [3] as [TIMESTAMP] - [2021-02-28T21:05:24.612]
2021-02-28 21:05:24.618 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [4] as [BIGINT] - [26]
2021-02-28 21:05:24.619 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [5] as [TIMESTAMP] - [2021-02-28T21:05:24.612]
2021-02-28 21:05:24.619 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [6] as [INTEGER] - [0]
2021-02-28 21:05:24.621 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [7] as [VARCHAR] - [일감 내용]
2021-02-28 21:05:24.621 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [8] as [VARCHAR] - [일감 제목]
2021-02-28 21:05:24.621 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [9] as [BIGINT] - [1]
Hibernate: select task0_.TASK_NO as task_no1_1_, task0_.REG_DT as reg_dt2_1_, task0_.UPDATE_DT as update_d3_1_, task0_.END_DT as end_dt4_1_, task0_.PROJECT_NO as project_9_1_, task0_.START_DT as start_dt5_1_, task0_.STATE as state6_1_, task0_.TASK_DESC as task_des7_1_, task0_.TASK_TITLE as task_tit8_1_, task0_.MANAGER_NO as manager10_1_ from TASK task0_ where task0_.TASK_NO=?
2021-02-28 21:05:24.629 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [BIGINT] - [27]
2021-02-28 21:05:24.631 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([task_no1_1_] : [BIGINT]) - [27]
2021-02-28 21:05:24.631 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([reg_dt2_1_] : [TIMESTAMP]) - [2021-02-28T21:05:24]
2021-02-28 21:05:24.631 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([update_d3_1_] : [TIMESTAMP]) - [2021-02-28T21:05:24]
2021-02-28 21:05:24.632 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([end_dt4_1_] : [TIMESTAMP]) - [2021-02-28T21:05:24]
2021-02-28 21:05:24.632 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([project_9_1_] : [BIGINT]) - [26]
2021-02-28 21:05:24.632 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([start_dt5_1_] : [TIMESTAMP]) - [2021-02-28T21:05:24]
2021-02-28 21:05:24.632 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([state6_1_] : [INTEGER]) - [NEW]
2021-02-28 21:05:24.632 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([task_des7_1_] : [VARCHAR]) - [일감 내용]
2021-02-28 21:05:24.632 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([task_tit8_1_] : [VARCHAR]) - [일감 제목]
2021-02-28 21:05:24.632 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([manager10_1_] : [BIGINT]) - [1]
Hibernate: select project0_.PROJECT_NO as project_1_0_0_, project0_.REG_DT as reg_dt2_0_0_, project0_.UPDATE_DT as update_d3_0_0_, project0_.OPEN_YN as open_yn4_0_0_, project0_.PROJECT_DESC as project_5_0_0_, project0_.PROJECT_TITLE as project_6_0_0_ from PROJECT project0_ where project0_.PROJECT_NO=?
2021-02-28 21:05:24.646 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [BIGINT] - [26]
2021-02-28 21:05:24.662 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([reg_dt2_0_0_] : [TIMESTAMP]) - [2021-02-28T21:05:24]
2021-02-28 21:05:24.662 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([update_d3_0_0_] : [TIMESTAMP]) - [2021-02-28T21:05:24]
2021-02-28 21:05:24.664 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([open_yn4_0_0_] : [SMALLINT]) - [1]
2021-02-28 21:05:24.664 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([project_5_0_0_] : [VARCHAR]) - [프로젝트 설명]
2021-02-28 21:05:24.664 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([project_6_0_0_] : [VARCHAR]) - [프로젝트 제목]
2021-02-28 21:05:24.672 TRACE 7428 --- [           main] org.hibernate.type.CollectionType        : Created collection wrapper: [com.sgw.common.domain.Project.taskList#26]
Hibernate: select user0_.USER_NO as user_no1_2_0_, user0_.EMAIL as email2_2_0_, user0_.LOGIN_DT as login_dt3_2_0_, user0_.NICK_NM as nick_nm4_2_0_, user0_.PWD as pwd5_2_0_, user0_.REG_DT as reg_dt6_2_0_, user0_.ROLE as role7_2_0_ from USER user0_ where user0_.USER_NO=?
2021-02-28 21:05:24.674 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicBinder      : binding parameter [1] as [BIGINT] - [1]
2021-02-28 21:05:24.684 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([email2_2_0_] : [VARCHAR]) - [test@gmail.com]
2021-02-28 21:05:24.684 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([login_dt3_2_0_] : [TIMESTAMP]) - [2020-12-15T20:48:50]
2021-02-28 21:05:24.684 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([nick_nm4_2_0_] : [VARCHAR]) - [testUser001]
2021-02-28 21:05:24.685 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([pwd5_2_0_] : [VARCHAR]) - [123456]
2021-02-28 21:05:24.685 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([reg_dt6_2_0_] : [TIMESTAMP]) - [2020-12-15T20:48:50]
2021-02-28 21:05:24.685 TRACE 7428 --- [           main] o.h.type.descriptor.sql.BasicExtractor   : extracted value ([role7_2_0_] : [VARCHAR]) - [null]

 

잉...? 갑자기 한글이 잘들어간다....

 

 

음...설정을 따로 해준것을 없는거 같은데 해결이 되었다...다음에 다시 한글이 깨지게 되었을때 추가 설정을 확인해봐야할거같다...

 

 

 


참고

 

 

 

 

반응형

'[JPA]' 카테고리의 다른 글

[JPA] 기본키 매핑  (0) 2020.12.22
[JPA] hibernate.hbm2ddl.auto 옵션  (0) 2020.12.21
[JPA] Not a managed type: class 에러  (0) 2020.11.28
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/07   »
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
글 보관함