jpa 中文排序

jpa 中文排序,第1张

jpa 中文排序 定义mysql函数和关键字
package com.htaw.cs.base.common.contents;

import org.hibernate.dialect.MySQL5Dialect;
import org.hibernate.dialect.function.SQLFunctionTemplate;
import org.hibernate.type.StandardBasicTypes;
import org.springframework.stereotype.Component;
@Component
public class MySQLChineseDialect extends MySQL5Dialect {
    
    public MySQLChineseDialect(){
        super();
        registerFunction("convert", new SQLFunctionTemplate(StandardBasicTypes.STRING, "ConVERT(?1 using GBK)"));
        registerKeyword("using");
        registerKeyword("USING");
        registerKeyword("GBK");
        registerKeyword("gbk");
    }
}

添加jpa配置
spring:
	jpa:
		properties:
            hibernate:
                dialect: com.htaw.cs.base.common.contents.MySQLChineseDialect

查询时添加排序
public Specification getSpecification() {
    Specification specification = (root, query, criteriaBuilder) -> {
    List list = new ArrayList<>();
	expression convertRealnameFunction = criteriaBuilder.function("convert", String.class, root.get("name"));
            Order nameAsc = criteriaBuilder.asc(convertRealnameFunction);
            query.orderBy(nameAsc );
            return criteriaBuilder.and(list.toArray(new Predicate[0]));
        };
        return specification;
    }

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4670435.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-06
下一篇2022-11-06

发表评论

登录后才能评论

评论列表(0条)

    保存