|
Spring Boot + Freemarker. @ManyToMany,@AuthenticationPrincipal User u. и разделение прав
|
|||
---|---|---|---|
#18+
Направьте в нужном направлении, не могу сообразить. Есть сущности пользователи, группы пользователей, курсы. Пользователю можно указать несколько групп. Курсу можно указать несколько групп. И собственно справочник групп пользователей. Необходимо отобразить текущему пользователю список курсов, содержащих хотя бы одну группу пользователя. Проблемы: 1. как корректно выполнять связку пользователя с группами (используя все блага Spring Boot)? Пробовал @OneToMany и @ManyToMany (по примерам видно), вроде как работает и так и так. Как корректно получать данные из базы когда связь идет через промежуточную таблицу. Могу вытащить данные select -ом, но наверно это не самый оптимальный вариант. Нужно ли в сущности, которая является справочником делать ссылку на сущности использующие ее? 2. Если получить текущего пользователя в контроллере через @AuthenticationPrincipal User user, то значение Set<UserGroup> userGroups; содержит ошибку "Unable to evaluate the expression Method threw 'org.hibernate.LazyInitializationException' exception." Попытался получить пользователя через userRepo.findByUsername(user), тогда возникает проблема №3. 3. При получении пользователя по логину в контроллере через @AuthenticationPrincipal User user, то возникают проблемы после разлогинивания, повторно залогиниться не получается. Есть ощущение что сессия в базе зависает. 4. Пытался в шаблонах Freemarker отображать в <#list > только те курсы, который содержат группы как у текущего пользователя через ?seq_contains(...). Но пока тоже неуспешно. За основной пример брал этот проект Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Код: java 1. 2. 3. 4. 5. 6. 7. 8.
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2018, 12:51 |
|
Spring Boot + Freemarker. @ManyToMany,@AuthenticationPrincipal User u. и разделение прав
|
|||
---|---|---|---|
#18+
если есть возможность покритиковать подход в принципе, "поделюсь" ссылкой на сотворенное..) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2018, 12:55 |
|
Spring Boot + Freemarker. @ManyToMany,@AuthenticationPrincipal User u. и разделение прав
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2018, 15:06 |
|
Spring Boot + Freemarker. @ManyToMany,@AuthenticationPrincipal User u. и разделение прав
|
|||
---|---|---|---|
#18+
mad_nazgulb35.5, @ManyToMany ?! Так получилось, что я вроде как все сделал почти как по букварю, до того как нашел эту же ссылку. Гуглю 2дня, перебираю варианты, но пока не понимаю. Основная проблема в том, что в одном месте все работает. В настройках пользователя могу указать группы и сохранить значения. интерфейс и код А в другом месте не работает. Это и сбивает с толку. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2018, 18:02 |
|
Spring Boot + Freemarker. @ManyToMany,@AuthenticationPrincipal User u. и разделение прав
|
|||
---|---|---|---|
#18+
b35.5, Тут я вам вряд ли помогу. Т.к. при возникновении таких проблем перестаю использовать ORM, а просто пишу нужный запрос. Который будет выполняться в NativeQuery :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2018, 11:25 |
|
Spring Boot + Freemarker. @ManyToMany,@AuthenticationPrincipal User u. и разделение прав
|
|||
---|---|---|---|
#18+
mad_nazgul, Да были мысли уже по этому поводу. Написать запрос гораздо проще), а хочется сперва именно возможности Spring boot освоить. Читаю пока статьи/документацию, ответ пока не нашел, но по пути еще много полезного подхватил. Спасибо за участие! (найду решение проблемы, отпишусь). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2018, 11:36 |
|
Spring Boot + Freemarker. @ManyToMany,@AuthenticationPrincipal User u. и разделение прав
|
|||
---|---|---|---|
#18+
b35.5mad_nazgul, Да были мысли уже по этому поводу. Написать запрос гораздо проще), а хочется сперва именно возможности Spring boot освоить. Читаю пока статьи/документацию, ответ пока не нашел, но по пути еще много полезного подхватил. Спасибо за участие! (найду решение проблемы, отпишусь). При чем тут Spring Boot? Spring Boot никоим образом не запрещает использовать нативные SQL запросы. См. JdbcTemplate ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2018, 13:44 |
|
Spring Boot + Freemarker. @ManyToMany,@AuthenticationPrincipal User u. и разделение прав
|
|||
---|---|---|---|
#18+
mad_nazgulне запрещает использовать нативные SQLон ищет нативные ОРМ навигации по объектам. Думаю, что sql написать всегда успеет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2018, 13:56 |
|
Spring Boot + Freemarker. @ManyToMany,@AuthenticationPrincipal User u. и разделение прав
|
|||
---|---|---|---|
#18+
Petro123, Да, да. select-ом я вытащу данные без проблем. первая итерация знакомства с web - была на "голых" сервлетах. Дальше дали возможные "направления", Spring Boot показался наиболее "простым" в восприятии и интуитивно понятным. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2018, 14:16 |
|
Spring Boot + Freemarker. @ManyToMany,@AuthenticationPrincipal User u. и разделение прав
|
|||
---|---|---|---|
#18+
Вероятно, там где не работает - сессия хибернейта уже закрыта ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2018, 15:12 |
|
Spring Boot + Freemarker. @ManyToMany,@AuthenticationPrincipal User u. и разделение прав
|
|||
---|---|---|---|
#18+
no56892Вероятно, там где не работает - сессия хибернейта уже закрыта Трассируй. Или вернись к хиберу и убедись что работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2018, 15:27 |
|
Spring Boot + Freemarker. @ManyToMany,@AuthenticationPrincipal User u. и разделение прав
|
|||
---|---|---|---|
#18+
Petro123, Я свои уже оттрасировал, пора и отдохнуть ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2018, 16:36 |
|
Spring Boot + Freemarker. @ManyToMany,@AuthenticationPrincipal User u. и разделение прав
|
|||
---|---|---|---|
#18+
no56892, Звиняй, это ТСу)) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.07.2018, 18:42 |
|
Spring Boot + Freemarker. @ManyToMany,@AuthenticationPrincipal User u. и разделение прав
|
|||
---|---|---|---|
#18+
b35.5Petro123, Да, да. select-ом я вытащу данные без проблем. первая итерация знакомства с web - была на "голых" сервлетах. Дальше дали возможные "направления", Spring Boot показался наиболее "простым" в восприятии и интуитивно понятным. Так никто не мешает в репозитории Spring Data Jpa написать нативный запрос. ;-) Главное, чтобы запрос возвращал поля точно такие-же как в Entity ... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2018, 05:31 |
|
Spring Boot + Freemarker. @ManyToMany,@AuthenticationPrincipal User u. и разделение прав
|
|||
---|---|---|---|
#18+
mad_nazgul, В общем решил проблему, нужна была всего одна строка. Код: java 1.
Переписал в двух сущностях @ManyToMany (...цатый раз). При авторизации возникала ошибка про сериализацию в UserGroup Вспомнил с видеоуроков stepick про магическую строку с Код: java 1.
Теперь Код: java 1. 2. 3.
Возвращает user и подтягивает userGroup Рабочий вариант =============================== Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.07.2018, 12:30 |
|
|
start [/forum/topic.php?fid=59&gotonew=1&tid=2121907]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
85ms |
get topic data: |
11ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 192ms |
0 / 0 |