Hibernate的HQL支持数据库convert函数
2015-10-14 10:47
274 查看
Mysql 的convert函数,现现在数据库的字符集是utf-8,如果想实现中文排序,就需要用convert(filedNameusing gbk) 实现,但现有的hibernate的hql不能支持此函数,我们可以现在Dialect注册一个函数,一样不赞成直接修改Hibernate 的源码, 我们可以扩展一个类,如下代码所示
import org.hibernate.Hibernate;
importorg.hibernate.dialect.MySQL5Dialect;
import org.hibernate.dialect.function.SQLFunctionTemplate;
public class MySQL5LocalDialect extends MySQL5Dialect{
public MySQL5LocalDialect(){
super();
registerFunction("convert", newSQLFunctionTemplate(Hibernate.STRING, "convert(?1 using ?2)"));
}
}
现在applicationContext.xml中或hibernate.hbm.xml中修改
package.MySQL5LocalDialect
<propertyname="hibernate.dialect">
com.credit.publicmodel.util.MySQL5LocalDialect
</property>
现在HQL中使用convert方法,例如: convert(fieldName, 'gbk') , "GBK"也可以是其他字符集
import org.hibernate.Hibernate;
importorg.hibernate.dialect.MySQL5Dialect;
import org.hibernate.dialect.function.SQLFunctionTemplate;
public class MySQL5LocalDialect extends MySQL5Dialect{
public MySQL5LocalDialect(){
super();
registerFunction("convert", newSQLFunctionTemplate(Hibernate.STRING, "convert(?1 using ?2)"));
}
}
现在applicationContext.xml中或hibernate.hbm.xml中修改
package.MySQL5LocalDialect
<propertyname="hibernate.dialect">
com.credit.publicmodel.util.MySQL5LocalDialect
</property>
现在HQL中使用convert方法,例如: convert(fieldName, 'gbk') , "GBK"也可以是其他字符集
相关文章推荐
- MySQL数据类型和常用字段属性总结
- PL/SQL 学习笔记
- oracle 列转行函数 WMSYS.WM_CONCAT 排序不规则处理
- 连接Oracle中的那些事儿
- MySQL安装未响应解决方法
- 基于MYSQL-GTID主从复制
- Windows环境下,Nginx+tomcat+redis实现web项目集群
- 基于C API的SQLite3基本数据库操作
- SQLite全面学习(二)
- oracle把varchar2修改为clob
- SQLite全面学习(一)
- mysql数据脱敏处理方法
- iOS中的数据持久化方式,基本上有以下四种:属性列表、对象归档、SQLite3和Core Data
- oracle介绍之oracle不走索引的7种常见情况!
- MySql:增删改查(CRUD)以及乱码编码解决(1)
- 怎么样把备份的BAK文件导入到新建的数据库中MSSQL数据库
- MYSQL -- 通过in查询怎样排序问题
- MSSQL备份与还原经典文档
- mysql如何给汉字按照首字母顺序排序
- oracle索引简介2