Java - это backend язык программирования, следовательно, разработчиком всегда приходится работать с различными реляционными и не реляционными системами управления базами данных. На курсе по JDBC мы прошли материал, который позволяет нам без подключения дополнительных библиотек, чисто на Java Core работать с реляционными СУБД. Но мы видели, как сложно и единообразно писать маппинг сущностей из SQL запросов в базу данных и, наоборот, когда мы пытаемся сохранить какой-то Java объект в базу данных. Другими словами говоря, мы много занимаемся рутинной работой для ORM (Object Relational Mapping). Более того, единообразен и подход в выполнении CRUD (Create Read Update Delete) операций для всех сущностей.И на помощь нам приходит один из самых актуальных и широко используемых в Java ORM фреймворков - Hibernate.На этом курсе мы изучим, что такое ORM framework, что такое JPA спецификация и как к ней относится Hibernate.Узнаем все основные маппинги сущностей, как реализованы реляционные связи в виде Java аннотаций.Что такое SessionFactory и Session, и как найти соответствие им в JDBC. Мы полностью пройдем жизненный цикл сущностей, узнаем их состояния и почему все вертится вокруг PersistenceContext.Изучим два уровня кеширования в Hibernate, и как решить N+1 проблему!Реализуем собственный слой DAO (и в чем его отличие от слоя Repository), который поможет нам разобраться с тонкостями работы транзакций и зачем использовать DTO при работе с Hibernate. На каждом занятии мы будем заходить в исходный код, чтобы понимать, как все устроено изнутри!
What you'll learn
understand the principles of ORM
learn to implement JPA with Hibernate
perform CRUD operations efficiently
manage entity lifecycle and states
handle caching strategies in Hibernate
resolve N+1 issues
create custom DAO layers
distinguish between DAO and Repository layers
Course objectives
provide a solid foundation in Hibernate and JPA
equip learners with practical skills for real-world Java applications