2015-11-06 2 views
0

У меня есть простая настройка проекта Spring MVC Data, где я пытаюсь выбрать список пользователей, которые еще не существуют в таблице Admin. Вот мой репозиторий методВключая пропущенную запись в NOT IN Условие

SELECT u FROM User u WHERE u.id NOT IN (SELECT a.id FROM Admin a WHERE a.id = :id) 
List<User>findAvailableUsers(@Param("id") Long id) 

Это хорошо работает, тем больше пользователей я добавить к Admin таблице, тем меньше у меня есть в наличии в моем <select> вкладке

Когда дело доходит до редактирования существующего пользователя в Admin, мой тег <select> должен содержать всех доступных Пользователей, а также отображаемого в настоящее время пользователя, однако из-за предложения NOT IN этот одиночный пользователь опускается из результатов запроса. Могу ли я изменить этот запрос, чтобы включить все доступные User s, чтобы добавить , включая Пользователь, который в настоящее время существует тегом?

пример: Пользователь 2 и Пользователь 4 были добавлены в таблицу администратора. Когда я редактирую запись для пользователя 2 в этой таблице администратора, я все равно должен видеть User 2 как доступную опцию, но она не указана enter image description here

+0

Когда я редактирую запись для пользователя 2 в этом администратора таблицы, я все-таки вижу пользователя 2 как доступный вариант, но он опущен .... вот то, что вы имеете в виду опущено. –

+0

пропущено, как в User 2, не является частью набора результатов из-за условия NOT IN, но я хочу включить User 2 –

+0

в ваш подзапрос, а не просто добавить еще одно условие, согласно которому пользователь не должен равняться user2 , –

ответ

0

Что-то вроде этого?

SELECT u FROM User u WHERE u.id NOT IN (SELECT a.id FROM Admin a WHERE a.id = :id) OR u.id = :idToGet