Использование # {Principal} в @Query приводит к «Свойство или поле« Principal »не может быть найдено на нуле» - PullRequest
0 голосов
/ 26 января 2019

Следуя официальному руководству , Spring вылетает с Property or field 'principal' cannot be found on null при добавлении этого @Query в репозиторий:

@Query("select count(e) from #{#entityName} e where e.user_id = #{principal?.id}")

Для меня это похоже на проблему циклической зависимости: в моем случае UserDetailsServiceImpl нужен JpaRepository. Создавая этот репозиторий, Spring пытается оценить @Query, который сам опирается на конфигурацию безопасности (SecurityEvaluationContextExtension bean). Конфигурация безопасности зависит от UserDetailsService. А также. Так. На.

Я пробовал разные способы избежать этого (@DependsOn, удаление @EnableJpaRepository, перемещение конфигов), но безуспешно. Поскольку я довольно новичок в Spring, я думаю, что делаю что-то действительно глупое, поэтому я прошу вас:

Возможно ли вообще это созвездие - интеграция данных Spring Security с UserDetailsService в зависимости от JpaRepo, и что я могу делать не так?

1 Ответ

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

И это глупо: я забыл знак вопроса, обозначающий параметр запроса.

@ Query ("select count (e) from # {# entityName} e, где e.user_id = ? # {главный? .id} ")

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...