如何延长jpa订单

如何延长jpa订单,jpa,criteriaquery,Jpa,Criteriaquery,我使用条件查询搜索表,并使用名称字段对其进行筛选。我筛选名称为%user entered name%的记录。 然后使用名称列对结果进行排序。现在我有一个问题。我会把它分类如下: 姓名(第一个列表记录他的姓名等于用户输入的姓名) 姓名*(第二个列表记录他的姓名以用户输入的姓名开头) *name*(在最后一个列表中记录历史名称包含用户输入的名称) jpa中是否有解决方案 非常感谢。一个解决方案是在语句时使用CASE检索名为relevance的附加列。它可以定义如下: c.multiselect(

我使用条件查询搜索表,并使用名称字段对其进行筛选。我筛选名称为%user entered name%的记录。
然后使用名称列对结果进行排序。现在我有一个问题。我会把它分类如下:

  • 姓名(第一个列表记录他的姓名等于用户输入的姓名)
  • 姓名*(第二个列表记录他的姓名以用户输入的姓名开头)
  • *name*
    (在最后一个列表中记录历史名称包含用户输入的名称)
jpa中是否有解决方案


非常感谢。

一个解决方案是在语句时使用
CASE检索名为relevance的附加列。它可以定义如下:

c.multiselect(employee.get("name"),
    cb.selectCase()
    .when(cb.equal(employee.get("name"), "user-defined-name"), 3)
    .when(cb.like(employee.get("name"), "user-defined-name%"), 2)
    .when(cb.like(employee.get("name"), "%user-defined-name%"), 1)
    .otherwise(0)
    .alias("relevance"))

谢谢你的回复。但我如何在此查询上设置order by。返回结果的第二列没有名称。