Size: a a a

Spring Framework and more

2019 May 04

A

Abilmansur in Spring Framework and more
Plomipu Dmitri
какое название поля в классе User , где хранится его имя ?
username
источник

PD

Plomipu Dmitri in Spring Framework and more
название метода репозитория, которым ты добываешь имя пользователя объяви в userRepository findByUserName(String userName)
источник

A

Abilmansur in Spring Framework and more
Plomipu Dmitri
название метода репозитория, которым ты добываешь имя пользователя объяви в userRepository findByUserName(String userName)
он и так уже объявлен
источник

C

Cyclone in Spring Framework and more
В findByUsername строчная n.
источник

PD

Plomipu Dmitri in Spring Framework and more
Abilmansur
он и так уже объявлен
просто спринг имена методов в интерфейсе репозитория парсит, чтобы определить, по каким критериям( полям ) идёт SELECT запрос к базе. Поэтому вполне возможно, что в твоём случае спринг просто не различит регистры букв в названии метода, которым ты делаешь запрос поиска имени юзера. У тебя объявлен метод так findByUsername(String username)
, а нужно так
findByUserName(String UserName)
источник

C

Cyclone in Spring Framework and more
Не надо гадать.
Надо включить логирование SQL запросов и посмотреть, что выполняется.
источник

C

Cyclone in Spring Framework and more
Plomipu Dmitri
просто спринг имена методов в интерфейсе репозитория парсит, чтобы определить, по каким критериям( полям ) идёт SELECT запрос к базе. Поэтому вполне возможно, что в твоём случае спринг просто не различит регистры букв в названии метода, которым ты делаешь запрос поиска имени юзера. У тебя объявлен метод так findByUsername(String username)
, а нужно так
findByUserName(String UserName)
Всё Спринг различает, не надо выдумывать.
источник

C

Cyclone in Spring Framework and more
Если поле называется username, то метод будет findByUsername именно в таком регистре.
источник

C

Cyclone in Spring Framework and more
Abilmansur
при вызове Optional<User> user = userRepository.findByUsername("test1") возвращает nullPointerException, хотя юзер test1 существует в базе. как решить проблему?
Если именно этот вызов выбрасывает NPE, то проблема вообще не в методе, а в том, что у тебя userRepository null.
источник

PD

Plomipu Dmitri in Spring Framework and more
Cyclone
Не надо гадать.
Надо включить логирование SQL запросов и посмотреть, что выполняется.
ну я просто сказал парню, что благодаря этому верхнему регистру букв спринг различает слова, которые идут после 'By' и следовательно понимает по ним, по каким критериям метод должен создавать запрос к базе и фильтровать. Своего рода парсинг. Это тоже одна из причин. Если не поможет, то тогда можно и нужно в application.properties ещё добавить logging.level.org.hibernate.type=TRACE, чтобы видеть в логах хибера, когда выполняется запрос, чтобы знать хотя бы, какие значения в этот запрос передаются.
источник

C

Cyclone in Spring Framework and more
Если бы проблема была в сигнатуре метода spring data, приложение вообще бы не стартануло.
источник

PD

Plomipu Dmitri in Spring Framework and more
ладно. Просто я не уверен, что дело точно не в сигнатуре.
источник

PD

Plomipu Dmitri in Spring Framework and more
У меня просто был некий опыт в этом. Я знаю, что это может не относиться к сигнатуре метода, но у меня бывало так не раз, что если название переменных при маппинге из модели в dto-шку и наоборот у того и другого не совпадало, то сопоставление данных к тому полю класса , какому ты хочешь не происходило бы. Туже самую реакцию можно ожидать и при неправильном названии метода и его сигнатуры метода репозитория, которые ты юзаешь для запроса к базе по определённым критериям, что там тоже сопоставление отсутствует. В доке по spring data читал, надо ещё искать так как уже не помню где я это взял
источник

М

Михаил in Spring Framework and more
Abilmansur
при вызове Optional<User> user = userRepository.findByUsername("test1") возвращает nullPointerException, хотя юзер test1 существует в базе. как решить проблему?
Скорее всего если прям NPE, то значит юзер репозитори объявлен, но не заинжектен, потому и обращение на его метод приводит к NPE
источник

A

Abilmansur in Spring Framework and more
Михаил
Скорее всего если прям NPE, то значит юзер репозитори объявлен, но не заинжектен, потому и обращение на его метод приводит к NPE
Значит надо вписать @Autowired ?
источник

A

Abilmansur in Spring Framework and more
Михаил
Скорее всего если прям NPE, то значит юзер репозитори объявлен, но не заинжектен, потому и обращение на его метод приводит к NPE
спасибо. помогло
источник

A

Abilmansur in Spring Framework and more
источник

A

Abilmansur in Spring Framework and more
такой вопрос. как достать role_id из этого hashset-а?
источник

AG

Alex Gladun in Spring Framework and more
Abilmansur
такой вопрос. как достать role_id из этого hashset-а?
У тебя много ролей в сете , какой именно role_id?
источник

A

Abilmansur in Spring Framework and more
Alex Gladun
У тебя много ролей в сете , какой именно role_id?
нужен role_id конкретного юзера. для этого я должен указать id юзера, но где и как я не знаю
источник