Пытаюсь научиться использовать SpringJPA, но все никак не выходит, т.к. не понимаю, какого типа параметры могу использовать в методе @Query моего интерфейса. Потратил кучу времени, прежде чем узнал, что параметром не может быть Enum. Где в документации там это указано, подскажите плз!
Ola
36 уровень
Spring JPA. Кто-нибудь ткните мои глаза в документацию в место, где указано, каких типов могут быть параметры метода @Query
Обсуждается
Комментарии (9)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Ksenia Volkova Java Developer в DXC Master
3 сентября 2020, 15:22
Поясни, пожайлуйста, что ты имеешь в виду под методом @Query? Аннотированный метод?
Может, пример кода?
И в чем проблема с Enum?
0
Ola Backend Developer
4 сентября 2020, 08:07
При вызове метода myQuery спринг логирует сообщение типа:
Binding for parameter someEnum did not define type
0
Ksenia Volkova Java Developer в DXC Master
4 сентября 2020, 08:22
А поле someField у MyEntity как аннотировано?
0
Ola Backend Developer
4 сентября 2020, 08:25
@Enumerated(EnumType.STRING)
0
Ksenia Volkova Java Developer в DXC Master
4 сентября 2020, 08:39
"select e from myEntityTable e where e.someField = :someEnum"
А так?
0
Ola Backend Developer
4 сентября 2020, 11:04
неа )
0
Ksenia Volkova Java Developer в DXC Master
4 сентября 2020, 11:10
Я бы смотрела на то, как вообще Entity связана с таблицей. Сам по себе Enum не должен быть проблемой.
Без этого параметра запрос работает?
Почему ты в запросе используешь myEntityTable, если enitity у тебя - MyEntity?
0
Ola Backend Developer
4 сентября 2020, 11:25
Без параметра запрос работает
0
Ksenia Volkova Java Developer в DXC Master
4 сентября 2020, 11:40
Подожди... а зачем ты native используешь?
То есть чистый sql?
И если уж ты не хочешь использовать jpql, то и парамеры тебе придется передавать в том виде, в каком они в бд существуют - то есть в качестве someField передавать строку.
Или же убирай native и используй что-то типа
"select e from MyEntity e where e.someField = :someEnum"
0