一尘不染

使用Hibernate / JPA按给定ID按给定ID选择一组对象的最佳方法是什么

hibernate

我想选择多个具有给定id的对象,但也要按给定顺序选择对象,例如:

<named-query name="getQuestionsByIds">
    <query><![CDATA[from Question q where q.id in (:ids)]]></query>
</named-query>

但是在参数中的排序方式与id相同。

例如在mysql中,可以这样完成:

SELECT * FROM table ORDER BY FIELD( id, 23, 234, 543, 23 )

什么是最好的方法?


阅读 302

收藏
2020-06-20

共1个答案

一尘不染

Hibernate会保留不知道的功能,并在编写时将其传递给SQL,因此,假设您使用的是MySQL,是否尝试过使用“ ORDER BY
FIELD”子句编写HQL?就像是…

select q from Question q where q.id in (:ids) ORDER BY FIELD(id, :ids)
2020-06-20