2013-09-20 2 views
0
List<Prize> prizes = 
       sessionProvider.getCurrentSession().createQuery("from Prize where id in (:ids)") 
         .setParameterList("ids", prizeIds).list(); 

У меня есть список призов, которые не уникальны. Мне нужно получить объекты Prize для каждого id. Но hibernate возвращает мне только список уникальных элементов. Как я могу получить список такого же размера, как и список ввода.Как получить нечеткие результаты из спящего запроса с использованием «in»

+0

идентификаторов не являются уникальными ??? Напугав меня, чувак! –

+0

Иды в таблице уникальны. Но список, который я передаю (призовые), будет иметь один и тот же идентификатор несколько раз. – dinesh707

+0

Вы можете перебрать список идентификаторов и получить результат текущей сессии и добавить эти объекты в свой список возврата. –

ответ

0

ОБНОВЛЕНИЕ: То, что у вас есть несколько идентификаторов, меняет вещи. Конечно, Hibernate делает свою работу, поэтому вы должны найти другое решение.

Чтобы ответить на вопрос правильно: невозможно получить нечеткие результаты, используя «in».

+0

нет, мой список id не отличается. например; prizeIds = {1,3,2,1,1,4}, для этого мне нужен список объектов Prize, содержащих {P1, P3, P2, P1, P1, P4}. Но какой спящий режим возвращает меня: {P1, P2, P3, P4} – dinesh707

+0

Я не проголосовал. – dinesh707

1

Ответ, который вы получаете, - это функциональность по умолчанию «in» в базе данных. Используйте условие существования или не существует для получения записей для каждого идентификатора. Я сомневаюсь, что вы можете использовать существо или нет.

Но, будьте уверены, о функциональности, которую вы пытаетесь достичь, это не то, что очень часто встречается в большинстве приложений

Смежные вопросы