2013-11-26 3 views
0

У меня проблема, когда я разбирала список клиентов для китайской колонки с Hibernate, во-первых, я попытался отсортировать их по той простой HQL:Как сделать сортировку китайской колонки в спящем режиме?

String hql = "FROM CUSTOMER ORDER BY name DESC"; 

Я нашел извлеченный список не отвечают нашим требованиям, Я хочу, чтобы отсортировать их с 26-буквенными заклинаниями, а затем я гуглом решения, которое может быть решено с помощью SQL как:

String sql = "SELECT * FROM customer ORDER BY convert(name using gbk) DESC"; 

я отправил его в командной строке MySQL и выбрал правую сортировку результата, но сейчас он все еще не решает мою проблему, поскольку он не работает в Гибер nate, и я просто хочу использовать Hibernate (HQL) для запроса, так есть ли способ сделать это? Или я должен разработать новый диалект базы данных для его решения?

Спасибо.

+0

Проверьте ответ, он будет работать для Я! –

ответ

0

Попробуйте использовать это, это может сработать и для вас, работает для меня!

SELECT * FROM customer WHERE CONVERT(name USING gb2312) > '明'; 
SELECT * FROM customer ORDER BY CONVERT(name USING gb2312); 

Последнее неявно использует gb2312_chinese_ci, но вы могли бы назвать другой для этой кодировки, тоже.

+0

Могу ли я использовать метод CONVERT в HQL? –

+0

@BradyChu Я думаю, что он должен работать –

Смежные вопросы