Hibernate中文排序乱序问题

来源:互联网 发布:淘宝买家秀大尺度网站 编辑:程序博客网 时间:2024/06/07 04:42

使用Hibernate操作数据库时,中文排序会出现乱序.主要原因还是编码的问题.对于MySql(其他数据库类似)数据库驱动,Hibernate不支持order by不支持gbk,这就需要修改数据库驱动了:

import org.hibernate.NullPrecedence;import org.hibernate.dialect.MySQL5InnoDBDialect;public class MySQLGBKDialect extends MySQL5InnoDBDialect{    public String renderOrderByElement(String expression, String collation, String order, NullPrecedence nulls){        expression = (new StringBuilder("convert(")).append(expression).append(" using 'gbk')").toString();        return super.renderOrderByElement(expression, collation, order, nulls);    }}

重写mysql驱动后还需要改Hibernate配置文件,需要改为重写的驱动:

<property name="driverClassName" value="${包名.MySQLGBKDialect}" />