Как использовать enum в предложении where в качестве постоянной проверки в jpa - PullRequest
0 голосов
/ 24 января 2019

Я новичок в jpa и пытаюсь написать запрос.Запрос связан с enum.У меня есть enum, я хочу получить записи на основе enum.

В приведенном ниже запросе deviceStatus - это enum.когда я определил lk.deviceStatus = LOCKER_CLOSE, выдав ошибку:

Неизвестный столбец 'LOCKER_CLOSE' в 'выражении where'

@Query("SELECT lk from Locker lk where lk.terminal.id=:terminalId 
and lk.deviceStatus =LOCKER_CLOSE and lk.isEmpty =true  
and :size IS NULL OR lk.lockerSize=:size")


public List<Locker> testOneFunction(@Param("terminalId") String 
 terminalId, @Param("size") LockerSize size);

1 Ответ

0 голосов
/ 24 января 2019

Попробуйте использовать полностью квалифицированный enum класс, например

SELECT lk from Locker lk where lk.terminal.id=:terminalId 
and lk.deviceStatus = com.somepackage.MyStatusEnum.LOCKER_CLOSE 
and lk.isEmpty =true and :size IS NULL OR lk.lockerSize=:size
...