springcloud下hibernate本地化方言配置方式

 更新时间:2023年09月05日 10:40:28   作者:牟云飞  
这篇文章主要介绍了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中的逻辑控制语句详解

    Java中的逻辑控制语句详解

    下面小编就为大家带来一篇Java逻辑控制的基础文章。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-08-08
  • Java中的字符串常量池详细介绍

    Java中的字符串常量池详细介绍

    这篇文章主要介绍了Java中的字符串常量池详细介绍,JVM为了减少字符串对象的重复创建,其维护了一个特殊的内存,这段内存被成为字符串常量池或者字符串字面量池,需要的朋友可以参考下
    2015-01-01
  • 一文搞懂Spring中@Autowired和@Resource的区别

    一文搞懂Spring中@Autowired和@Resource的区别

    @Autowired 和 @Resource 都是 Spring/Spring Boot 项目中,用来进行依赖注入的注解。它们都提供了将依赖对象注入到当前对象的功能,但二者却有众多不同,并且这也是常见的面试题之一,所以我们今天就来盘它
    2022-08-08
  • java中String.intern()方法功能介绍

    java中String.intern()方法功能介绍

    这篇文章主要介绍了java中String.intern()方法具有什么功能,主要包括String.intern原理,JDK6中String.intern()的相关知识,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • 注意Java中 new BigDecimal(double val) 的使用

    注意Java中 new BigDecimal(double val) 的使用

    这篇文章主要介绍了注意Java中 new BigDecimal(double val) 的使用,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-07-07
  • Java并发编程之ConcurrentLinkedQueue源码详解

    Java并发编程之ConcurrentLinkedQueue源码详解

    今天带小伙伴们学习一下Java并发编程之Java ConcurrentLinkedQueue源码,本篇文章详细分析了ConcurrentLinkedQueue源码,有代码示例,对正在学习java的小伙伴们很有帮助哟,需要的朋友可以参考下
    2021-05-05
  • Spring Security如何实现升级密码加密方式详解

    Spring Security如何实现升级密码加密方式详解

    这篇文章主要为大家介绍了Spring Security实现升级密码加密方式详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • 关于idea2020.3升级lombok不能使用的问题

    关于idea2020.3升级lombok不能使用的问题

    这篇文章主要介绍了关于idea2020.3升级lombok不能使用的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Spring事务失效场景的详细整理

    Spring事务失效场景的详细整理

    Spring 事务的传播特性说的是,当多个事务同时存在的时候,Spring 如何处理这些事务的特性,下面这篇文章主要给大家介绍了关于Spring事务失效场景的相关资料,需要的朋友可以参考下
    2022-02-02
  • Java基于Javafaker生成测试数据

    Java基于Javafaker生成测试数据

    这篇文章主要介绍了Java基于Javafaker生成测试数据的方法,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-12-12

最新评论