2013-11-26 23 views
0

我,當我爲使用Hibernate中國列進行排序的客戶名單的問題,首先,我試圖用簡單的HQL對它們進行排序:如何在Hibernate中對中文列進行排序?

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

我發現檢索列表不符合我們的要求,我想他們有26個字母拼寫排序,然後我用Google搜索,它可以通過SQL來解決類似的解決方案:

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

我張貼在MySQL命令行,並選擇了正確的排序結果,但現在它仍然不能解決我的問題,因爲它在Hiber不起作用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

我可以在HQL中使用CONVERT方法嗎? –

+0

@BradyChu我認爲它應該工作 –