【问题标题】:How to apply custom order in Criteria API?如何在 Criteria API 中应用自定义订单?
【发布时间】:2020-12-14 04:46:07
【问题描述】:

如何在 Criteria API 中应用这样的 SQL 顺序?

order by BB.BUILDING_NUMBER, decode(outBo.TYPE, 
                                                  '9E85B2C7F4450851E053230C350A4C39', 1, 
                                                  '9E85B2C7F4490851E053230C350A4C39', 2, 
                                                  '9E85B2C7F4480851E053230C350A4C39', 3, 
                                                  4), 
                                 to_number(regexp_replace(outBo.BUILD_OBJECT_NUMBER, '\\D', '')), 
                                 outBo.BUILD_OBJECT_NUMBER

【问题讨论】:

    标签: spring-boot hibernate jpa criteria-api


    【解决方案1】:

    教程很多:https://docs.oracle.com/javaee/6/tutorial/doc/gjivm.html#gjiwo

    可以通过criteriaBuilder.function("", args..)调用数据库函数。

    【讨论】:

    • 你能告诉我,如何使用解码功能吗?我应该在 args 中传递什么?以及如何使用嵌套函数 to_number(regexp_replace....?
    • 只嵌套表达式。 criteriaBuilder.function("decode", root.type(), criteriaBuilder.literal("9E85B2C7F4450851E053230C350A4C39"), 1, ..)criteriaBuilder.function("to_number", criteriaBuilder.function("regex_replace", root.get("buildObjectNumber"), ..)..
    猜你喜欢
    • 2019-03-13
    • 1970-01-01
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 2022-10-21
    • 2019-08-27
    • 1970-01-01
    相关资源
    最近更新 更多