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实现文件上传的详细步骤

    文件上传是用户将本地文件通过Web页面提交到服务器的过程,涉及客户端、服务器端、上传表单等组件,在SpringBoot中,通过MultipartFile接口处理上传文件,并将其保存在服务器,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-10-10
  • 基于java变量和作用域以及成员变量的默认初始化(详解)

    基于java变量和作用域以及成员变量的默认初始化(详解)

    下面小编就为大家介绍一下java变量和作用域以及成员变量的默认初始化,具有很好的参考价值,希望对大家有所帮助
    2017-11-11
  • java使用RabbitMQ实现延迟消息示例

    java使用RabbitMQ实现延迟消息示例

    本文介绍了在分布式系统中,使用RabbitMQ实现延迟消息处理,其中详细阐述了RabbitMQ队列和交换机的配置、消息的发送与接收以及死信队列的处理,具有一定的参考价值,感兴趣的可以了解一下
    2024-10-10
  • MAC下如何设置JDK环境变量

    MAC下如何设置JDK环境变量

    这篇文章主要介绍了MAC下如何设置JDK环境变量问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 后端三大开发语言之PHP、Java、Go全面详细解析

    后端三大开发语言之PHP、Java、Go全面详细解析

    PHP、Java和Go是三种流行的编程语言,分别适用于不同的应用场景,这篇文章主要介绍了后端三大开发语言之PHP、Java、Go全面解析的相关资料,文中介绍的非常详细,需要的朋友可以参考下
    2026-01-01
  • IDEA 一直scanning files to index的四种完美解决方法(VIP典藏版)

    IDEA 一直scanning files to index的四种完美解决方法(VIP典藏版)

    这篇文章主要介绍了IDEA 一直scanning files to index的四种完美解决方法(VIP典藏版),推荐第四种方法,第四种方法摸索研究后得出,亲测好用,需要的朋友参考下吧
    2023-10-10
  • Spring Data JPA在eladmin中的深度应用实践

    Spring Data JPA在eladmin中的深度应用实践

    本文详细介绍了eladmin系统中SpringDataJPA的应用实践,涵盖了实体关系建模、复杂查询构建、性能优化策略等方面,为开发者提供了JPA使用的最佳实践,感兴趣的朋友跟随小编一起看看吧
    2026-01-01
  • HttpClient详细使用示例代码

    HttpClient详细使用示例代码

    这篇文章主要介绍了HttpClient详细使用示例,包括导入依赖,使用工具类的详细代码,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • Mybatis resultMap标签继承、复用、嵌套方式

    Mybatis resultMap标签继承、复用、嵌套方式

    这篇文章主要介绍了Mybatis resultMap标签继承、复用、嵌套方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • 使用jasypt在springboot中加密敏感信息

    使用jasypt在springboot中加密敏感信息

    Jasypt是一个简化Java加密操作的轻量级库,支持与Spring Boot深度集成,通过ENC(密文)格式实现配置文件的自动加解密,本文就来介绍一下springboot jasypt 加密敏感,感兴趣的可以了解一下
    2026-02-02

最新评论