Андрей Беляев - Hibernate 6: что нового и почему это важно

Поділитися
Вставка
  • Опубліковано 9 бер 2023
  • Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября, Санкт-Петербург
    - -
    В марте вышла стабильная мажорная версия Hibernate 6. Помимо смены названия пакетов с javax на jakarta и переезда на Java 11, появилось несколько нововведений, которые могут заинтересовать тех, кто активно использует JPA в своей работе. Спикер рассмотрит как внешние изменения - новые классы и API, так и внутренние. Вторые не так заметны разработчикам, но более важны, потому что от них зависит быстродействие фреймворка.
    Что видно сразу:
    - Новый маппинг типов данных - теперь не нужны сторонние библиотеки, чтобы работать с JSON.
    - Поменялась генерация ID: API стал более гибким и менее запутанным.
    - SQL в логах стало намного проще читать.
    Что поменялось внутри:
    - Semantic Query Model - новая структура данных для представления запросов в фреймворке, что открывает новые возможности для написания запросов. Например, появилась поддержка оконных функций.
    - Поменялся обход дерева сущностей, теперь используется обход в ширину, а не в глубину.
    В докладе разберем эти нововведения на примерах и посмотрим, на что стоит обратить внимание при переезде на эту версию.
    Ссылка на презентацию: squidex.jugru.team/api/assets...
    #hibernate_6 #jpa #semantic_query_model #orm #data_access
  • Наука та технологія

КОМЕНТАРІ • 15

  • @user-si7dj7fj6f
    @user-si7dj7fj6f Рік тому +3

    Супер, добавили еще одну потенциальную n+1

  • @tiy2000
    @tiy2000 Рік тому +3

    Отличный доклад! Спасибо!

  • @user-xz7ps7hn1g
    @user-xz7ps7hn1g Рік тому +7

    было бы интересно узнать перформанс-сравнение Hibernate5 vs Hibernate6.

  • @sssLAKIsss
    @sssLAKIsss Рік тому +1

    Спасибо за качественный доклад!

  • @RickDkkrd
    @RickDkkrd Рік тому +2

    Супер, спасибо за интересный обзор

  • @user-rh1ty5rx3h
    @user-rh1ty5rx3h 9 місяців тому

    Спасибо за доклад!

  • @dmitrykoryanov1656
    @dmitrykoryanov1656 6 місяців тому

    Круто, спасибо за доклад!

  • @rustemgaliev3285
    @rustemgaliev3285 Рік тому

    Крутой доклад, спасибо! Единственное, хотелось бы увидеть, почему 15 джойнов по примеру в конце, не очень понял (в презентации по ссылке вообще этого примера нет). Если мы строим "тернарное" дерево высотой 2, разве у нас не выйдет в сумме 12 джойнов? 3 от корня, плюс по 3 на каждый элемент на каждый лист исходящий от корня, 3 + 3 * 3 = 12. Может конечно я как-то не так понял объяснение Андрея и Алексея

    • @grant1337
      @grant1337 Рік тому +1

      По следующему уравнению, где el - количество элементов. В данном случае el = 3 от корня.
      el + (el-1) * (el-1) * el = 3+ 2 * 2 * 3 = 15
      Т.е. Из первой ветки parent1 пойдет в ветку 2 и сделает join на parent2 и parent3, и затем сходит в ветку 3 и также сделает join на parent2 и parent3. Получаем 4 JOIN.
      Проходимся по каждому parent, 4+4+4 и добавляем 3 от корня. Получаем 15.

  • @ogyct
    @ogyct Рік тому +2

    Меня очень волнуют batch insertы, когда я пытаюсь инсертить большое количесто объектов через spring jpa, hibernate выключает батчинг, потому что идшник аутоинкрементится базой данных, а хибер хочет всегда его получать назад. Единствыенный способ это обойти это через jdbcTemplate. Поменялось ли что-то в этом смысле?

    • @Daman_24
      @Daman_24 6 місяців тому

      Ты про IDENTITY? А если SEQUENCE использовать? Это не решается?

  • @alexeyyushin8358
    @alexeyyushin8358 11 місяців тому +4

    а вам не приходило в голову что то чего вы изначально хотели избежать на самом деле проще, быстрее и эффективнее монстра которого вы породили?

  • @daryamarkova8153
    @daryamarkova8153 7 місяців тому

    А что это за должность такая, девелопер-адвокат? Расскажите,пожалуйста. Самый крутой программист значит?))

    • @Muchitel
      @Muchitel 4 місяці тому +1

      Нет, это который помогает отмазаться почему возникли баги на проде

  • @firstlast2655
    @firstlast2655 Рік тому +2

    Круто рассказали, спасибо 👍