栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

休眠顺序为null

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

休眠顺序为null

鉴于HHH-465尚未修复,并且由于史蒂夫·埃伯索尔(Steve
Ebersole)给出的原因而不会在近期内修复,因此,最好的选择

CustomNullsFirstInterceptor
是全局使用该问题的附件,也可以专门使用该附件来更改SQL语句。

我在下面将其发布给读者(归功于Emilio Dolce):

public class CustomNullsFirstInterceptor extends EmptyInterceptor {    private static final long serialVersionUID = -3156853534261313031L;    private static final String ORDER_BY_TOKEN = "order by";    public String onPrepareStatement(String sql) {        int orderByStart = sql.toLowerCase().indexOf(ORDER_BY_TOKEN);        if (orderByStart == -1) { return super.onPrepareStatement(sql);        }        orderByStart += ORDER_BY_TOKEN.length() + 1;        int orderByEnd = sql.indexOf(")", orderByStart);        if (orderByEnd == -1) { orderByEnd = sql.indexOf(" UNIOn ", orderByStart); if (orderByEnd == -1) {     orderByEnd = sql.length(); }        }        String orderByContent = sql.substring(orderByStart, orderByEnd);        String[] orderByNames = orderByContent.split("\,");        for (int i=0; i<orderByNames.length; i++) { if (orderByNames[i].trim().length() > 0) {     if (orderByNames[i].trim().toLowerCase().endsWith("desc")) {         orderByNames[i] += " NULLS LAST";     } else {         orderByNames[i] += " NULLS FIRST";     } }        }        orderByContent = StringUtils.join(orderByNames, ",");        sql = sql.substring(0, orderByStart) + orderByContent + sql.substring(orderByEnd);         return super.onPrepareStatement(sql);    }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/568882.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号