Андрей Беляев - 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 - Наука та технологія
Супер, добавили еще одну потенциальную n+1
Отличный доклад! Спасибо!
было бы интересно узнать перформанс-сравнение Hibernate5 vs Hibernate6.
Спасибо за качественный доклад!
Супер, спасибо за интересный обзор
Спасибо за доклад!
Круто, спасибо за доклад!
Крутой доклад, спасибо! Единственное, хотелось бы увидеть, почему 15 джойнов по примеру в конце, не очень понял (в презентации по ссылке вообще этого примера нет). Если мы строим "тернарное" дерево высотой 2, разве у нас не выйдет в сумме 12 джойнов? 3 от корня, плюс по 3 на каждый элемент на каждый лист исходящий от корня, 3 + 3 * 3 = 12. Может конечно я как-то не так понял объяснение Андрея и Алексея
По следующему уравнению, где 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.
Меня очень волнуют batch insertы, когда я пытаюсь инсертить большое количесто объектов через spring jpa, hibernate выключает батчинг, потому что идшник аутоинкрементится базой данных, а хибер хочет всегда его получать назад. Единствыенный способ это обойти это через jdbcTemplate. Поменялось ли что-то в этом смысле?
Ты про IDENTITY? А если SEQUENCE использовать? Это не решается?
а вам не приходило в голову что то чего вы изначально хотели избежать на самом деле проще, быстрее и эффективнее монстра которого вы породили?
А что это за должность такая, девелопер-адвокат? Расскажите,пожалуйста. Самый крутой программист значит?))
Нет, это который помогает отмазаться почему возникли баги на проде
Круто рассказали, спасибо 👍