Каков наилучший способ выбора набора объектов по заданным идентификаторам в заданном порядке с помощью Hibernate / JPA - PullRequest
3 голосов
/ 14 января 2011

Я хочу выбрать количество объектов с заданными идентификаторами, но также в указанном порядке, например:

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

Но упорядочено так же, как идентификаторы в параметре.

Напримерв mysql это можно сделать так:

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

Как лучше?

Ответы [ 2 ]

4 голосов
/ 14 января 2011

Hibernate сохраняет функции, которые он не знает, и передает их SQL, как они были написаны, поэтому, если вы используете MySQL, пытались ли вы написать свой HQL с предложением 'ORDER BY FIELD'? Что-то вроде ...

select q from Question q where q.id in (:ids) ORDER BY FIELD(id, :ids)
1 голос
/ 03 сентября 2015

Чтобы прочитать обновленную и, я надеюсь, полезную, информацию по этой теме прочитайте этот ответ , связанный с той же проблемой, но с использованием postgres Есть также некоторые независимые от базы данных решения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...