|
|
|
Quartz+boot+JPA
|
|||
|---|---|---|---|
|
#18+
собссно проблема, сделал вроде по мануалам, всё работает, всё вызывается, всё стартует. Но уже 2 часа голову ломаю - когда к жпа репозиторию обращаюсь - ругается, что нет сессии. т.е. сейшн контекст в параллельный поток не передается. Помню была похожая проблема со спринг.шедулером, и я ее как то решил, но не помню как. вот конфиг кварза: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. аппконтекст передается, платформтранзактманагер тоже не пустой. а любой вызов валится с ошибкой жпа. я так понимаю, что то в конфиге не добавил, верно? Есть конечно вариант - внутри потока через персистансконтекст обращаться к жпа репозиториям, но это очень плохая идея. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2017, 22:47 |
|
||
|
Quartz+boot+JPA
|
|||
|---|---|---|---|
|
#18+
andreykaT я так понимаю, что то в конфиге не добавил, верно? Есть конечно вариант - внутри потока через персистансконтекст обращаться к жпа репозиториям, но это очень плохая идея. Обычно это разруливает EntityManagerFactory если следовать общим рекомендациям по спрингу. Вот гляньте мой код здесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 01:35 |
|
||
|
Quartz+boot+JPA
|
|||
|---|---|---|---|
|
#18+
SergunkaandreykaTя так понимаю, что то в конфиге не добавил, верно? Есть конечно вариант - внутри потока через персистансконтекст обращаться к жпа репозиториям, но это очень плохая идея. Обычно это разруливает EntityManagerFactory если следовать общим рекомендациям по спрингу. Вот гляньте мой код здесь Глюканул сквл пишу дальше https://github.com/SVyatkin/predix-rdbr-cf/blob/master/src/main/java/com/ge/predix/labs/data/jpa/config/ServicesConfiguration.java здесь у меня несколько побольше сервисов, но идея примерна таже. Там через PersistenceContext все должно работать на чих-пых. Код: java 1. 2. https://github.com/SVyatkin/predix-rdbr-cf/blob/master/src/main/java/com/ge/predix/labs/data/jpa/service/VisitService.java ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 01:38 |
|
||
|
Quartz+boot+JPA
|
|||
|---|---|---|---|
|
#18+
andreykaTЕсть конечно вариант https://stackoverflow.com/a/18698497 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 05:31 |
|
||
|
Quartz+boot+JPA
|
|||
|---|---|---|---|
|
#18+
SergunkaГлюканул сквл пишу дальше https://github.com/SVyatkin/predix-rdbr-cf/blob/master/src/main/java/com/ge/predix/labs/data/jpa/config/ServicesConfiguration.java здесь у меня несколько побольше сервисов, но идея примерна таже. Зачем так сложно?! 1) Подключаем spring-data-jpa + нужный JDBC-driver Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 2) В main/resources/application.properties (application.yaml) - прописываем подключение к БД Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 3) Описываем все entity 4) В конфигурации пишем @EnableJpaRepositories с указанием где будет репозиторий Код: java 1. 2. 3. 4. 5. 6. 7. 8. 5) В пакете-репозитории создаем интерфейсы с аннотацией @Repository, наследники JpaRepository<Entity, TypePK> Код: java 1. 2. 3. 4. ... 6) POFIT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 06:56 |
|
||
|
Quartz+boot+JPA
|
|||
|---|---|---|---|
|
#18+
andreykaTя так понимаю, что то в конфиге не добавил, верно? Выглядит вполне нормально. У меня очень похожий конфиг, с одной лишь разницей, что вместо JobFactory я в спринге конфигурирую CronTriggerFactoryBean + MethodInvokingJobDetailFactoryBean. Я бы подебажил спринги. Может там не в сессии дело, а в том что вызов бина не перехватывается спрингом в принципе и поэтому не создаётся контекст для потока? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 09:43 |
|
||
|
Quartz+boot+JPA
|
|||
|---|---|---|---|
|
#18+
дело в том, что не пашет только то что связано с jpa, остальные бины, связи инжекты и т.п. - без проблем. не передается только персистенз контекст. у меня было нечто похожее с многопоточкой спринга, но там вроде как решил просто использованием другого екзекутора. и оно само заработало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 10:09 |
|
||
|
Quartz+boot+JPA
|
|||
|---|---|---|---|
|
#18+
Мад Нацгул, да, у меня именно так через репо и сделано всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 10:10 |
|
||
|
Quartz+boot+JPA
|
|||
|---|---|---|---|
|
#18+
mad_nazgul6) POFIT ПОФИГ у тебя до тех пор пока потоки не начнут появляться "изнеоткуда". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 10:14 |
|
||
|
Quartz+boot+JPA
|
|||
|---|---|---|---|
|
#18+
andreykaTне передается только персистенз контекст Как определили? andreykaT. у меня было нечто похожее с многопоточкой спринга, но там вроде как решил просто использованием другого екзекутора. и оно само заработало. В stacktrace исключения присутствуют все нужные спринговые интерцепторы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 10:16 |
|
||
|
Quartz+boot+JPA
|
|||
|---|---|---|---|
|
#18+
ну как определил.. вызываю сервисы, которые внутри себя имеют мешок зависимостей от других бинов. и всё работает. по стэктрэйсу сказать пока не могу - надо посмотреть. я не на работе.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 10:19 |
|
||
|
Quartz+boot+JPA
|
|||
|---|---|---|---|
|
#18+
andreykaTну как определил.. вызываю сервисы, которые внутри себя имеют мешок зависимостей от других бинов. и всё работает. Если в другом месте что-то работает, это ещё не значит что в том месте где не работает проблема в том что "не передаётся контекст". Она может быть и в чем-то другом. Поэтому мне и интересно, откуда такие точные выводы при таком скупом описании проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 10:22 |
|
||
|
Quartz+boot+JPA
|
|||
|---|---|---|---|
|
#18+
andreykaTМад Нацгул, да, у меня именно так через репо и сделано всё. Тогда тебе не нужна прямая ссылка на контекст. Да и EntityManager не особо нужен. Если нужен не стандартный запрос, то В репозитории ч/з @Query Если что-то совсем не стандартное. То делаете что-то подобное: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 15:18 |
|
||
|
Quartz+boot+JPA
|
|||
|---|---|---|---|
|
#18+
в общем, разобрался. я. ложная тревога. всем спасибо. вкратце, конфиг сверху верный. все контексты вроде как передаются. всё ок. проблема была в следующем: чуть ранее заказчик попросил фичу которая впиливает некоторые секурити плюшки на уровень персистанза, т.е. сделал перхватчик симплджпарепозитория и модифицировал стандартные методы и переданные спецификации. не спрашивайте зачем - не мое желание. что собссно я и впилил, данные в переписанном репозитории считвались с секурити контекста, который, естественно в потоке квартца был пустым. я забил контекст админскими кредами (в рамках своего приложения) - и всё заработало. единственное, что мне пока не очень понятно - мой код когда получал нулёвый секурити контекст - кидал соответствующий эксепшн с описанием. в случае когда этот контекст кидал ексепшн из под потока созданного кварцем ексепшен кидался: а) другой б) рандомно. :) изредка кидал мой эксепшн. что меня и натолкнуло на это дело. но это уже другая тема. такие дела. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2017, 22:12 |
|
||
|
Quartz+boot+JPA
|
|||
|---|---|---|---|
|
#18+
UsmanandreykaTЕсть конечно вариант https://stackoverflow.com/a/18698497 Очень классная ссылка. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2017, 03:58 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39482166&tid=2122789]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
77ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
| others: | 208ms |
| total: | 406ms |

| 0 / 0 |
