我想更改结果的顺序。我不希望在数据库中找到第一个项目,而是列表中的第一个结果。
例如,我的结果是:
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进行重新排序。