`

mysql 使用hql给汉字排序

 
阅读更多

Hibernate的HQL已经支持大多数数据库函数,肯定不能包括所有, 幸运的是Hibernate已经对此做了相应的方案解决, 也就是Dialect中注册数据库函数.具体做法如下,我们以Mysql5为例 

  Mysql 的convert函数,现现在数据库的字符集是utf-8,如果想实现中文排序,就需要用convert(filedName using gbk) 实现,但现有的hibernate的hql不能支持此函数, 我们可以现在Dialect注册一个函数,一样不赞成直接修改Hibernate 的源码, 我们可以扩展一个类,如下代码所

import org.hibernate.Hibernate; 
import org.hibernate.dialect.MySQL5Dialect; 
import org.hibernate.dialect.function.SQLFunctionTemplate ; 


public class MySQL5LocalDialect extends MySQL5Dialect { 
public MySQL5LocalDialect(){
  super(); 
registerFunction("convert", new SQLFunctionTemplate(Hibernate.STRING, "convert(?1 using ?2)") );
  }
 }

 

现在applicationContext.xml中或hibernate.hbm.xml中修改 

package.MySQL5LocalDialect 
 
<property name="hibernate.dialect">
com.credit.publicmodel.util.MySQL5LocalDialect
</property>

  现在HQL中使用convert方法, 例如: order by convert(name, 'gbk') , "GBK"也可以是其他字符集
分享到:
评论

相关推荐

    解决Hibernate中MySQL的中文排序

    在使用Hibernate进行数据库操作时,可能会遇到MySQL数据库中文排序不正确的问题。这通常是由于字符集设置、数据库排序规则以及Hibernate的配置等因素导致的。本文将深入探讨如何解决这些问题,确保MySQL数据库中的...

    hibernate帮助手册和api集合(含英文中文版)

    本资源包含Hibernate的帮助手册和API集合,无论是英文版还是中文版,都能为开发者提供详尽的参考资料,确保理解和应用的准确性。 一、Hibernate概述 Hibernate是一个强大的Java持久层框架,它简化了数据库与Java...

    hibernate中文参考文档 V3.2

    4. **Query与Criteria API**:介绍如何使用HQL(Hibernate Query Language)和Criteria API进行复杂的数据查询,包括条件、排序、分组和连接等。 5. **Caching**:探讨了Hibernate的缓存机制,包括第一级缓存...

    hibernate3.2参考手册(中文版)

    - **查询**:详细解读HQL和Criteria API的用法,包括条件查询、分组、排序、聚合函数等。 - **缓存**:介绍第一级缓存和第二级缓存的概念,以及如何配置和利用缓存提高性能。 - **高级特性**:涵盖了懒加载、集合...

    NHibernate2.0中英文文档

    3. 查询语法:解析了HQL和Criteria API的使用方法,以及如何执行分页、排序和条件查询。 4. 映射关系:讲解了如何通过XML映射文件或注解来定义对象和表之间的复杂关系,如一对一、一对多、多对多等。 5. 性能调优...

    Hive用户指南(Hive_user_guide)_中文版

    ### Hive用户指南中文版知识点概览 #### 一、Hive结构 **1.1 Hive架构** Hive作为建立在Hadoop之上的数据仓库基础架构,其主要目标是简化大数据的处理过程。Hive的架构主要包括以下几个核心组件: - **用户接口*...

    hibernate 开发文档发布

    3.1.x版本中,Hibernate已经包含了对主流数据库的方言支持,如MySQL、Oracle、PostgreSQL等,使得代码更具移植性。 八、性能优化 在3.1.x版本中,Hibernate对性能进行了多方面的优化,包括延迟加载(Lazy Loading)...

    Hibernate_3.2.0_Reference_zh_CN

    《Hibernate 3.2.0 参考指南中文版》是一部深入浅出的Java...通过学习《Hibernate 3.2.0 参考指南中文版》,开发者可以深入了解Hibernate的工作原理,熟练掌握其使用技巧,从而在Java开发中更高效地处理数据库操作。

    Java学习笔记-个人整理的

    {13.5.1}MySQL}{198}{subsection.13.5.1} {13.6}连接池}{199}{section.13.6} {13.6.1}Wrapper}{199}{subsection.13.6.1} {13.7}DAO}{199}{section.13.7} {13.8}java.util.Date与java.sql.Date比较}{200}{...

Global site tag (gtag.js) - Google Analytics