springcloud下hibernate本地化方言配置方式
springcloud下hibernate本地化方言配置
通过application.yml进行配置,通过自定义一个方言类配置到application.yml中,
以mysql中convert为例,convert能够将汉字以首字符方式进行排序
ORDER BY convert(a.userName using 'gbk') DESC
如果是ssh看这里hibernate中HQL调用自定义函数
1、创建一个方言类
继承org.hibernate.dialect.MySQL5Dialect
在com.muyunfei.hibernateDialect包下创建一个LocalMysqlDialect .java类,编写无参构造,继承父类的构造super(),增加registerFunction注册一个函数
package com.muyunfei.hibernateDialect; import org.hibernate.dialect.function.SQLFunctionTemplate; import org.hibernate.type.StringType; public class LocalMysqlDialect extends org.hibernate.dialect.MySQL5Dialect { public LocalMysqlDialect(){ super(); registerFunction("convert", new SQLFunctionTemplate(StringType.INSTANCE, "convert(?1 using ?2)")); } }
2、更改配置文件
将自定义的方言类,配置到spring.jpa.properties.hibernate.dialect下
spring: jpa: show-sql: false properties: hibernate: jdbc: batch_size: 100 order_inserts: true order_updates: true dialect: com.muyunfei.hibernateDialect.LocalMysqlDialect
3、使用
将convert作为正常函数使用即可
hql.append(" ORDER BY convert(a.userName , gbk ) DESC ");
注意:
convert函数有点特殊,在方言里我们需要定义"convert(?1 using ?2)"),但是使用时需要convert(a.userName , gbk )
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
java jackson 将对象转json时,忽略子对象的某个属性操作
这篇文章主要介绍了java jackson 将对象转json时,忽略子对象的某个属性操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-10-10SpringBoot集成FastDFS依赖实现文件上传的示例
这篇文章主要介绍了SpringBoot集成FastDFS依赖实现文件上传,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-05-05maven导入本地仓库jar包,报:Could not find artifact的解决
这篇文章主要介绍了maven导入本地仓库jar包,报:Could not find artifact的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-03-03IntelliJ IDEA下自动生成Hibernate映射文件以及实体类
这篇文章主要介绍了IntelliJ IDEA下自动生成Hibernate映射文件以及实体类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2019-11-11
最新评论