| 
 | 
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Всем привет Есть две сущности ,ака таблицы Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ее DDL Код: plsql 1. 2. 3. 4. вторая сущность и ее таблица Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ее ддл Код: plsql 1. 2. 3. 4. 5. 6. вопрос в чем ,в том что сейчас если я беру обычный джава метод и генерую сначала список объектов класса B, затем генериую спискок объектов класса A и туда делаю set <List<B>> и далее делаю saveAll(List<A>) a получаю две заполненные таблицы)) но прикол в том что FK в таблице B null я знаю почему это получается ,потому что во время комита транзакции у хибера еще нет id класса A ,так как генерация по стратегии секвенс.Если поменять на Idenity все будет норм- но у меня как раз обратная задача. Поэтому ворпос к знатокам можно ли в процесее сохраннения сущности А каскадно сохранить и все сущности класса В с корректным FK ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.07.2021, 20:02 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  O_79_O, Код дай. А не рассказом как ты его писал. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.07.2021, 20:19 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  O_79_O, И сиквенс то где? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.07.2021, 20:26 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  O_79_O , я правильно понимаю, что ты смешиваешь IDENTITY & SEQUENCE в одном проекте? Не думаю что это хорошая идея. Когда ты вызываешь save(), то по завершению этого метода Hibernate обязан выдать сущности ID. В случае SEQUENCE все норм - мы просто берем следующую цифру, назначаем ее сущности и возвращаем. При этом никаких запросов в БД не уходит. А в случае IDENTITY порядок другой - ID назначает СУБД, поэтому ORM'у приходится делать сразу же INSERT. Мне кажется эту проблему никак не обойти кроме как сначала сохранять А без B, делать flush(), а затем проставлять коллекцию и снова сохранять. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.07.2021, 20:27 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Stanislav Bashkyrtsev, Если смешивает то дурак ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.07.2021, 20:28 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Stanislav Bashkyrtsev  O_79_O , я правильно понимаю, что ты смешиваешь IDENTITY & SEQUENCE в одном проекте? Не думаю что это хорошая идея. Когда ты вызываешь save(), то по завершению этого метода Hibernate обязан выдать сущности ID. В случае SEQUENCE все норм - мы просто берем следующую цифру, назначаем ее сущности и возвращаем. При этом никаких запросов в БД не уходит. А в случае IDENTITY порядок другой - ID назначает СУБД, поэтому ORM'у приходится делать сразу же INSERT. Мне кажется эту проблему никак не обойти кроме как сначала сохранять А без B, делать flush(), а затем проставлять коллекцию и снова сохранять. Стасян это тесты - в проекте пока все Identity и моя задача как раз все это снести ,заменив на sequence догадайся почему? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.07.2021, 21:10 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  сейчас я смотрел на то как хибер будет сохранять две сущности связанные 1 ко многим,если у базовой секвенс а у списка идентити в итоге получилось что и ожидалось хибер батчем записал все что секвенс и потом построчно все что идентити что далее - я меняю сущности В идентификатор на секвенс ,записываю заново и получаю ровно ту же картину - опять построчная запись,хотя в доках напиисано иное ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.07.2021, 21:16 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  O_79_O, У тебя удивительная способность задавать глупые детские вопросы. Зачем смешивать селедку с молоком? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.07.2021, 21:19 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Stanislav Bashkyrtsev, смотри статистику сейчас я поменял все на секвенс и таблица А и таблица Б имеют секвенс генератор в тот же самый момент при апдейте таблицы B Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. я получаю вот такую стату Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. где мы видем что вместо 5 батчей( батч сайз настроен на 500) у нас произошло 2500 запросов и потом 5 батчей и тут возникает вопрос откуда братец 2500 построчных запросов то - ведь уже идентификторы все sequnce ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.07.2021, 21:32 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  O_79_O где мы видем что вместо 5 батчей( батч сайз настроен на 500) у нас произошло 2500 запросов и потом 5 батчей Опять что-то пытаешься "оптимизировать"? у тебя статистика вместе и на select и на update, подумай каким образом хибер будет собирать граф, если у тебя: B -> A -> B[] и у всех при этом fetch = FetchType.EAGER? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.07.2021, 21:55 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  мышь плачет, но продолжает есть кактус... НО! есть прогресс - выкладывает ddl.... ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.07.2021, 21:55 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  вадя, Первый вопрос про сиквенс уже решили))) Съехал на вопрос - почему много запросов))) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.07.2021, 22:00 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Андрей Панфилов O_79_O где мы видем что вместо 5 батчей( батч сайз настроен на 500) у нас произошло 2500 запросов и потом 5 батчей Опять что-то пытаешься "оптимизировать"? у тебя статистика вместе и на select и на update, подумай каким образом хибер будет собирать граф, если у тебя: B -> A -> B[] и у всех при этом fetch = FetchType.EAGER? тоесть при апдейте B хибер лезет в А потом опять в В? выход какой или лейзи инициализация или ? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.07.2021, 22:45 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  O_79_O, ОРМ для CRUD, оптимизатор)))) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.07.2021, 23:06 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Андрей Панфилов O_79_O где мы видем что вместо 5 батчей( батч сайз настроен на 500) у нас произошло 2500 запросов и потом 5 батчей Опять что-то пытаешься "оптимизировать"? у тебя статистика вместе и на select и на update, подумай каким образом хибер будет собирать граф, если у тебя: B -> A -> B[] и у всех при этом fetch = FetchType.EAGER? сделал LAZY сделал апдейт таблицы B статистика ровно таже самая Код: plsql 1. 2. 3. 4. 5. щас включу логи хибера посмотрю что эта с**а селектит то 100 раз ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.07.2021, 23:27 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  O_79_O, похоже на то ,что при saveAll() хибер чекает каждый элемент на наличие в базе путем селекта обычного - гениально б ля ,и после этого делает батч апдейт/инсерт тоесть в любом случае ,какой бы не был идентификатор хибер будет делать тоже количество селектов,что и количество элементов в вашем списке - это какой то лютый пиз дец - неужели нельзя было реализовать это как то по другому ,чем делать хренову тонну селектов то ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.07.2021, 23:42 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  при апдейте хибер генерит вот такие запросы Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. следом за ними идет пачка вот таких Код: plsql 1. 2. 3. 4. 5. 6. 7. запросов типа селект 11 запросов типа update 5 при этом в таблице находится 10 записей) что происходит я честно не очень понимаю ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.07.2021, 23:51 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  O_79_O что происходит я честно не очень понимаю Да ладно, хибернейт же лучшее изобретение человечества? или уже нет? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.07.2021, 02:12 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  забыл ник,интересно к чему тут твой бесполезный коментарий) пс.Вообщем выяснил что при генерации id по стратегии sequence хибер будет каждый раз делать селект в этот самый секвенс при вставке строчки Лечится это инкрементом на 50 хотя бы,тогда время вставки вырастает пропорционально в 50 раз ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.07.2021, 11:19 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  O_79_O забыл ник,интересно к чему тут твой бесполезный коментарий) пс.Вообщем выяснил что при генерации id по стратегии sequence хибер будет каждый раз делать селект в этот самый секвенс при вставке строчки Лечится это инкрементом на 50 хотя бы,тогда время вставки вырастает пропорционально в 50 раз Потому что все должно идти от таблиц. Хибернейт неплох для простых админок CRUD где не сильно много связей между сущностями. Щаг влево-вправо и начинается возня, типичным примером является твой вопрос. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.07.2021, 11:25 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  PetroNotC Sharp O_79_O, Код дай. А не рассказом как ты его писал. тебе сюда вход воспрещен. не понятно чтоле из названия? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.07.2021, 11:34 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  забыл ник O_79_O забыл ник,интересно к чему тут твой бесполезный коментарий) пс.Вообщем выяснил что при генерации id по стратегии sequence хибер будет каждый раз делать селект в этот самый секвенс при вставке строчки Лечится это инкрементом на 50 хотя бы,тогда время вставки вырастает пропорционально в 50 раз Потому что все должно идти от таблиц. Хибернейт неплох для простых админок CRUD где не сильно много связей между сущностями. Щаг влево-вправо и начинается возня, типичным примером является твой вопрос. давай по пунктам сейчас мы разбирам не связи между таблицами,а то ,почему хибернейт генерирует те или иные запросы со вставкой я разобрался - хибер делает селекты в секвенс и берет оттуда значение - с этим все норм и лечится это увеличением шага инкремента до дефолтных для хибера 50 сейчас у меня второй вопрос при попытке апдейта некоего количества запиисей в бд происходит не совсем для меня понятный процесс а имеено хибернейт и так уже имея список перстистеных сущностей зачем то опять идет в базу и достает их оттуда построчно и потом так же построчно апдейтит ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.07.2021, 11:42 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  andreykaT, А тебе? Ты же два слова связать не можешь. Обычно троечники возмущаются отличниками) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.07.2021, 11:44 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  PetroNotC Sharp andreykaT, А тебе? Ты же два слова связать не можешь. Обычно троечники возмущаются отличниками) а мне не сказали. читай заголовки в следующий раз внимательнее. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.07.2021, 11:48 | 
  
  
  
   | 
||
| 
 
Реквестируем отличников по Хибернейт в тред,петро и ваде вход воспрещен) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  O_79_O, >имея список перстистеных сущностей зачем то опять идет в базу и достает их оттуда построчно и потом так же построчно апдейтит = А) проверить версию в бд сучности Б) хибер не имеет список при коротких транзакциях. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 21.07.2021, 11:48 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=59&msg=40085019&tid=2120389]:  | 
    0ms | 
get settings:  | 
    11ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    67ms | 
get topic data:  | 
    10ms | 
get forum data:  | 
    2ms | 
get page messages:  | 
    60ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 238ms | 
| total: | 410ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...