|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev Вообще важно. Если бы у тебя был Spring Boot, то по умолчанию он сконфигурил бы OpenEntityManagerInViewInterceptor и тогда сессия (EntityManager) создалась бы до контроллера. В таком случае проблемы с лишними select'ами не было бы потому как объекты бы были в сессии уже. Это все равно было бы неправильно (тут явно нужна одна транзакция), но select'ов бы не было. В обычном Spring MVC надо OSIV настраивать самому, причем можно фильтром а не интерсептором (и это лучше чем неявная конфигурация SpringBoot'ом). А вот в тесте никто бы сессию не открыл без @Transactional. Разве что это RestAssured и/или MockMvc тесты. ты ошибаешься,потому что у меня как раз таки спринг бут не путай сессию хибера и http сессию они не взаимосвязаны ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 15:49 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp O_79_O, Ты убедись тестами что в одном методе идут две разных сессии хибера. Для хибера имеет значение сессия его в твоем вопросе. не нужно убеждаться это в учебнике написано что хибер каждый запрос выполняет в рамках отдельной тразакции( читай хибер сессии) чтобы хибер выполнил несколько запросов в рамках одной транзакции нужно хиберу об этом соообщить анотацией @Transactional ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 15:53 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O Stanislav Bashkyrtsev Вообще важно. Если бы у тебя был Spring Boot, то по умолчанию он сконфигурил бы OpenEntityManagerInViewInterceptor и тогда сессия (EntityManager) создалась бы до контроллера. В таком случае проблемы с лишними select'ами не было бы потому как объекты бы были в сессии уже. Это все равно было бы неправильно (тут явно нужна одна транзакция), но select'ов бы не было. В обычном Spring MVC надо OSIV настраивать самому, причем можно фильтром а не интерсептором (и это лучше чем неявная конфигурация SpringBoot'ом). А вот в тесте никто бы сессию не открыл без @Transactional. Разве что это RestAssured и/или MockMvc тесты. ты ошибаешься,потому что у меня как раз таки спринг бут не путай сессию хибера и http сессию они не взаимосвязаны ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 15:54 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O PetroNotC Sharp O_79_O, Ты убедись тестами что в одном методе идут две разных сессии хибера. Для хибера имеет значение сессия его в твоем вопросе. не нужно убеждаться это в учебнике написано что хибер каждый запрос выполняет в рамках отдельной тразакции( читай хибер сессии) чтобы хибер выполнил несколько запросов в рамках одной транзакции нужно хиберу об этом соообщить анотацией @Transactional ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 15:57 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
Stanislav Bashkyrtsev O_79_O пропущено... ты ошибаешься,потому что у меня как раз таки спринг бут не путай сессию хибера и http сессию они не взаимосвязаны потому что он для школьников и тех кто не умеет в хибер ,это сказал один из тим лидов еще давно- у нас зимой тут как раз и были споры на эту тему он у нас отрублен это да ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 15:57 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp O_79_O пропущено... не нужно убеждаться это в учебнике написано что хибер каждый запрос выполняет в рамках отдельной тразакции( читай хибер сессии) чтобы хибер выполнил несколько запросов в рамках одной транзакции нужно хиберу об этом соообщить анотацией @Transactional как ты видешь из кода все в рамках одного метода и происходит собственно смысл дальще об этом говорить если Олег указал что и где и почему не так. Давайте я подкину новую историю из этой же темы,она также довольно интересна ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 15:59 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
Еще раз. Поставь рядом findAll и сохранить. И убедись что они в разных сессиях. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 15:59 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O, Не надо новых. Покажи что аннотация уменьшила запросы. Добивай вопрос до конца. Не скользи. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 16:01 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp O_79_O, Не надо новых. Покажи что аннотация уменьшила запросы. Добивай вопрос до конца. Не скользи. я же выше сказал что анотация уменьшила - точней полностью убрала все лишние селекты ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 16:07 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O, ОК Отлично ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 16:11 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp O_79_O, ОК Отлично но есть еще один кейс, я изменил сучность A Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
добавил вторую сучность B Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
далее я генерирую сучности A и добвляю к ним в колекцию сучности В Код: 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.
далее я записываю все это в базу данных Код: java 1. 2. 3. 4. 5. 6. 7.
что я ожидаю что появится 50 записей в таблице A и по 2500 записей в таблице B ,при этом в каждой из записей в колонке a_id будет так же заполнена но этого не происходит- обе таблицы заполняются записям но колонка a_id в таблице B всегда null я понимаю что это происходит потому что на этапе комита у хибера еше нет id сучности А,так как стратегия генерации ПК у нас секвенс.Это можно исправить поменяв стратегию на Identity - тогда FK будут корректно записываться в таблицу В но у меня как раз в том и состоит задача - чтобы убрать Identity вопрос к знатокам - если способ какой исправить ситуацию и каскадно записывать эти две сучности ддл таблиц Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 17:08 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O, Для каждой сучности свой сиквенс + он в аннотации + все одинаковый режим. Выполняется? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 17:45 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O, 2) убрать цикл и сделать без него ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 17:48 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O, 3)нафиг базу ломать своим increment 50. Убери. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 17:49 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp O_79_O, 3)нафиг базу ломать своим increment 50. Убери. чтобы не бегать в бд за каждый ID а так если подсказть хиберу что sequence генерятся интервалом 50 он дернет раз получит 100, а дальше сам внутри приращением 49 новых записей сможет сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 17:55 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp O_79_O, 3)нафиг базу ломать своим increment 50. Убери. если убрть инкремент будем делать кучу селектов ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 18:05 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
lleming, Он сиквенс для приложений предприятия нарисовал. Я бы не. Он что, пуп земли со своим хибером? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 18:05 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O PetroNotC Sharp O_79_O, 3)нафиг базу ломать своим increment 50. Убери. если убрть инкремент будем делать кучу селектов ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 18:05 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O, И сиквенс afaik не пишется внутри ddl table ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 18:07 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp другие решения ищи. Убери цикл! чем тебе цикл не нравится - там лишь генерятся сущности,он тут вообще никаким боком ни кому не мешает генерится сущность А - в нее добавляется список с сущностями В при записи в бд сущности B не получают запись в поле a_id которое является ссылкой на пк из таблицы А ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 18:28 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
Немного изменил сущности Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
теперь получаю ошибку по понятной причиние ,так как a_id теперь валидируется как NotNull ,а значение ей так и не прописывается при каскадном сохранении ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 18:36 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
O_79_O PetroNotC Sharp другие решения ищи. Убери цикл! чем тебе цикл не нравится - там лишь генерятся сущности,он тут вообще никаким боком ни кому не мешает генерится сущность А - в нее добавляется список с сущностями В при записи в бд сущности B не получают запись в поле a_id которое является ссылкой на пк из таблицы А Декомпозиция. Учись. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 18:38 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
Мы дождемся отношений двух классов. Как пример?))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 18:45 |
|
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен)
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Мы дождемся отношений двух классов. Как пример?))))) выше все есть и ддл и сущности Петро ,ну не хватает знаний - хоть гугли вместе со мной вот решение этой проблемы,ddl не меняется - меняем сущности Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
теперь все пишется корректно и батчится Код: java 1. 2. 3.
не знаю только насколько это хорошо 3 к записей - были записаны за 18 секунд ,нужно понять почему так долго запись идет,если таки булк инсерты ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2021, 18:52 |
|
|
start [/forum/topic.php?fid=59&msg=40085173&tid=2120389]: |
0ms |
get settings: |
17ms |
get forum list: |
5ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
24ms |
get topic data: |
2ms |
get forum data: |
1ms |
get page messages: |
509ms |
get tp. blocked users: |
1ms |
others: | 272ms |
total: | 833ms |
0 / 0 |