Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate Restrictions.in列表中的第一个结果不是表单DB_Hibernate_Hibernate Criteria - Fatal编程技术网

Hibernate Restrictions.in列表中的第一个结果不是表单DB

Hibernate Restrictions.in列表中的第一个结果不是表单DB,hibernate,hibernate-criteria,Hibernate,Hibernate Criteria,我想更改结果的顺序。我不希望在数据库中找到第一项,而是列表中的第一个结果 例如,我的结果如下: criteria.add(Restrictions.in("name.id", listOfId)) 当我的数据库类似于: |ID |名称| |1 |名称1| |2 |名称2| |3 |名称3| |4 |名称4| 还有我的列表:listOfId[4,2,3] 结果是“2”,因为这是“我的listOfId”中“我的DB”的第一个结果 我希望结果是4。列表ID中的第一个。我建议您用

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

例如,我的结果如下:

criteria.add(Restrictions.in("name.id", listOfId))
当我的数据库类似于:


|ID |名称| |1 |名称1| |2 |名称2| |3 |名称3| |4 |名称4| 还有我的列表:listOfId[4,2,3]

结果是“2”,因为这是“我的listOfId”中“我的DB”的第一个结果


我希望结果是4。列表ID中的第一个。我建议您用Java对结果重新排序。SQL/Hibernate解决方案相当复杂。你基本上需要这样的东西:

ORDER BY CASE name.id WHEN 4 THEN 1 WHEN 2 THEN 2 WHEN 3 THEN 3 ELSE NULL END
由于这需要为每个参数组合使用一个新的SQL,因此执行起来很糟糕。因此,最好用Java进行这种重新排序