HQL 按名称排序忽略可选的 'The ' 前缀

HQL sort by name ignoring optional 'The ' prefix

所以我有一个命名查询,它搜索记录并按名为 fullName 的列对结果进行排序。其中一些全名以 'The ' 为前缀 - 我想修改查询以忽略这些特定前缀。这是当前命名查询的简化版本,其中包含条件的缩减列表:

select r from Record r where r.available = true ORDER BY r.fullName asc

试试这个:

select r 
from Record r 
where r.available = true
ORDER BY 
    CASE 
        WHEN r.fullName LIKE "The%" THEN SUBSTRING(r.fullName, 5)
       ELSE r.fullName
    END asc