티스토리 뷰

지난번에 PostgresQL에서 한글 정렬을 해결하는 방법으로 아래와 같이 query에서 collate를 사용하면 된다고 글을 올렸었다.

2020/03/01 - [Development] - PostgreSQL 한글 정렬 시 collate 옵션 사용하기

 

select * from test_table order by name collate "ko_KR.utf8";

 

이걸로 모든 문제가 해결된 줄 알았는데,
실제 내가 사용하는 개발환경에서는 JPA를 사용하고 있었고,
pagination을 위해서 raw query에 Pageable 옵션을 같이 사용하고 있었다

Pageable을 사용하는 경우 아래와 같이 sort 옵션도 같이 설정을 해야 한다.

new PageRequest(int page, int size, Sort sort);

 

그래서 database를 덤프 떠서 새로 생성해야 하나... 심각하게 고민을 하면서
구글을 열심히 검색하다가 정말 간단하게 해결할 수 있는 방법을 찾아냈다.

아래와 같이 select 하려는 column 명 바로 뒤에 collate 옵션을 주면 깔끔하게 해결이 된다!!!

select id, name collate "ko_KR.utf8", score from test_table;

 

물론 'select * from test_table'과 같은 형태의 query를 사용할 수는 없고
읽어오려는 모든 column을 작성해야 하는 번거로움은 있지만
database를 새로 만드는 것보다는 훨씬 편하다고 생각한다.

역시 구글은 모든 해답을 알고 있다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함