gpt4 book ai didi

jpa:执行不区分大小写的顺序

转载 作者:行者123 更新时间:2023-12-04 09:36:53 25 4
gpt4 key购买 nike

我有以下查询:

select p from Plan as p where p.location = :location order by p.name

问题是如果有如下三个计划:
苹果
bat
原子
牛油

返回以下内容:
苹果
牛油
原子
bat

我需要以下内容:
苹果
原子
bat
牛油

最佳答案

例如,对于 Hibernate,您可以在 ORDER BY 中使用 LOWER 函数来 p.name:

select p from Plan as p where p.location = :location order by LOWER(p.name)

我假设上面不能保证适用于所有 JPA 实现,因为 ORDER BY 的参数不是以下之一:
  • 评估为实体的可排序状态字段的 state_field_path_expression 或
    在 SELECT 子句中由以下之一指定的可嵌入类抽象模式类型:
    • 一个general_identification_variable
    • single_valued_object_path_expression
  • 一个 state_field_path_expression 计算结果为相同实体的相同状态字段或
    可嵌入抽象模式类型作为 SELECT 子句中的 state_field_path_expression
  • 一个 result_variable ,它指的是 SELECT 子句中的一个可订购项目,其相同
    已指定 result_variable。这可能是aggregate_expression 的结果,一个
    scalar_expression 或 SELECT 子句中的 state_field_path_expression。
    例如,下面的四个查询是合法的。

  • 如果它不适用于您使用的 JPA 实现,则必须使用以下查询:
    select p, LOWER(p.name) AS name_order 
    from Plan as p
    where p.location = :location order by name_order

    缺点是查询的结果是对象数组列表,每个列表中的第一个元素是计划实体的实例,第二个元素将被丢弃。

    关于jpa:执行不区分大小写的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9934494/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com