Hibernate Restrictions.in来自列表的第一个结果不是DB



我想更改结果的顺序。我不希望在数据库中找到第一个项目,而是列表中的第一个结果。

例如,我的结果是:

criteria.add(Restrictions.in("name.id", listOfId))

当我的数据库像:


|ID|NAME|

|1|名称1|

|2|名称2|

|3|name3|

|4|名称4|

和我的列表:listOfId[4,2,3]

结果是";2〃;因为这是我的DB的第一个结果";IN";我的ID 列表

我希望结果是4。listOfId中的第一个。

我建议您用Java重新排序结果。SQL/HHibernate解决方案相当复杂。你基本上需要这样的东西:

ORDER BY CASE name.id WHEN 4 THEN 1 WHEN 2 THEN 2 WHEN 3 THEN 3 ELSE NULL END

由于这需要为每个参数组合使用一个新的SQL,因此执行情况会很糟糕。因此,最好用Java进行重新排序。

相关内容

最新更新