我想选择多个具有给定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 )
什么是最好的方法?
Hibernate会保留不知道的功能,并在编写时将其传递给SQL,因此,假设您使用的是MySQL,是否尝试过使用“ ORDER BY FIELD”子句编写HQL?就像是…
select q from Question q where q.id in (:ids) ORDER BY FIELD(id, :ids)