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.LocalMysqlDialect3、使用
将convert作为正常函数使用即可
hql.append(" ORDER BY convert(a.userName , gbk ) DESC ");注意:
convert函数有点特殊,在方言里我们需要定义"convert(?1 using ?2)"),但是使用时需要convert(a.userName , gbk )
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
一文搞懂Spring中@Autowired和@Resource的区别
@Autowired 和 @Resource 都是 Spring/Spring Boot 项目中,用来进行依赖注入的注解。它们都提供了将依赖对象注入到当前对象的功能,但二者却有众多不同,并且这也是常见的面试题之一,所以我们今天就来盘它2022-08-08
注意Java中 new BigDecimal(double val) 的使用
这篇文章主要介绍了注意Java中 new BigDecimal(double val) 的使用,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下2022-07-07
Java并发编程之ConcurrentLinkedQueue源码详解
今天带小伙伴们学习一下Java并发编程之Java ConcurrentLinkedQueue源码,本篇文章详细分析了ConcurrentLinkedQueue源码,有代码示例,对正在学习java的小伙伴们很有帮助哟,需要的朋友可以参考下2021-05-05


最新评论