当我使用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命令行上发布了它并且它选择了正确的排序结果,但是现在它仍然没有解决我的问题,因为它在Hibernate中不起作用而我只想使用Hibernate( HQL )查询,有没有办法做到这一点?或者我必须开发一种新的数据库方言来解决它吗?
感谢。
答案 0 :(得分:0)
尝试使用它,它也适用于你,对我有用!
SELECT * FROM customer WHERE CONVERT(name USING gb2312) > '明';
SELECT * FROM customer ORDER BY CONVERT(name USING gb2312);
后者隐含地使用gb2312_chinese_ci,但你可以命名 另一个也是那个字符集。