当前位置:   article > 正文

springcloud下hibernate本地化方言配置

springcloud下hibernate本地化方言配置

springcloud下hibernate本地化方言配置,通过application.yml进行配置,通过自定义一个方言类配置到application.yml中,以mysql中convert为例,convert能够将汉字以首字符方式进行排序

ORDER BY convert(a.userName using 'gbk') DESC

如果是ssh看这里https://blog.csdn.net/myfmyfmyfmyf/article/details/45503919

1、创建一个方言类,继承org.hibernate.dialect.MySQL5Dialect

在com.muyunfei.hibernateDialect包下创建一个LocalMysqlDialect .java类,编写无参构造,继承父类的构造super(),增加registerFunction注册一个函数

  1. package com.muyunfei.hibernateDialect;
  2. import org.hibernate.dialect.function.SQLFunctionTemplate;
  3. import org.hibernate.type.StringType;
  4. public class LocalMysqlDialect extends org.hibernate.dialect.MySQL5Dialect {
  5. public LocalMysqlDialect(){
  6. super();
  7. registerFunction("convert", new SQLFunctionTemplate(StringType.INSTANCE, "convert(?1 using ?2)"));
  8. }
  9. }

 

2、更改配置文件

将自定义的方言类,配置到spring.jpa.properties.hibernate.dialect下

  1. spring:
  2. jpa:
  3. show-sql: false
  4. properties:
  5. hibernate:
  6. jdbc:
  7. batch_size: 100
  8. order_inserts: true
  9. order_updates: true
  10. 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 )

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/815290
推荐阅读
相关标签
  

闽ICP备14008679号