【问题标题】:Incorrect sort of DB query results in micronaut projectmicronaut 项目中的 DB 查询结果类型不正确
【发布时间】:2021-05-20 09:08:02
【问题描述】:

我将其传递给存储库函数:

Pageable.from(offset, limit).order(Sort.Order(orderBy, direction, true))

如果 orderBy 是 String 属性的名称,它就可以正常工作。如果我尝试按数字属性排序,它将返回按以下顺序排列的结果:

1, 11, 12, ... 19, 2、 20, 21

关于如何修正号码排序的任何建议?

对方法名称(例如 findAllOrderByNameAsc)进行排序不是一个选项,因为这是来自 API 的参数。我们需要支持任何属性的排序。

【问题讨论】:

    标签: sorting jpa micronaut


    【解决方案1】:

    移除 ignoreCase=true 参数或将其作为 false 传递

    Sort.Order(orderBy, direction, true)
    

    你应该只在字符串字段上使用 ignoreCase

    【讨论】:

    • orderBy 来自 API。我不知道调用者是否会尝试按字符串或数字属性进行排序。我不能只删除 ignoreCase = true,因为没有具有该签名的方法。
    • 它是否适用于ignoreCase = false?如果是这样,您可以使用反射找出调用者想要订购的字段的类型
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 2017-04-06
    • 2018-02-10
    • 1970-01-01
    相关资源
    最近更新 更多