Skip to content

Hibernate lessons: Primary keys, Embedded components, Mapping entity associations, HQL, Criteria API, QueryDSL, N+1, Transactions & Locks, Listeners & Interceptors, Hibernate Envers, Second Level Cache. Description in doc folders. Section cheat sheet. For memory!

Notifications You must be signed in to change notification settings

JcoderPaul/Hibernate_Lessons

Repository files navigation

Конфигурирование hibernate.cfg.xml, подключение и настройка зависимостей.

Конфигурация SessionFactory, класс Session, понятие POJO (Entity), типы данных (пользовательские типы данных).

Применение методов: *.update(), *.saveOrUpdate(), *.del(), *.get(), *.evict(), *.clear(), *.close(), *.getStatistics().

Применение аннотаций: @Entity, @Table, @Id, @Column, @Enumerated, @Type, @TypeDef.

Жизненный цикл сущности.


Логирование процессов в приложении. Уровни логирования, настройка и подключение логеров.

Встраиваемые классы, применение аннотаций: @Embeddable, @Embedded и @EmbeddedId.

Варианты генерации основных ключей: Identity, Sequences, Table.

Маппинг сущностей (отношения):

  • ManyToOne - аннотации @ManyToOne и @JoinColumn;
  • OneToMany - аннотации @OneToMany, @Cascade, @ToString, @EqualsAndHashCode;
  • OneToOne - аннотация @OneToOne;
  • ManyToMany - аннотация @ManyToMany, @JoinTable.

Применение аннотаций: @ElementCollection и @CollectionTable

Примеры сортировки сущностей. Применение аннотаций: @OrderBy, @OrderColumn, @SortNatural, @MapKey.


Применение родительских классов и интерфейсов при связке сущностей.

Аннотация @MappedSuperclass.

Маппинг иерархий наследования:

  • Table_Per_Class - специфика применения аннотаций при таком варианте наследования: @Inheritance, @Entity, @Builder, @Table, @GeneratedValue, @SequenceGenerator
  • Single_Table - специфика применения аннотаций при таком варианте наследования: @Inheritance, @DiscriminatorColumn, @DiscriminatorValue
  • Joined - специфика применения аннотаций при таком варианте наследования: @Inheritance, @PrimaryKeyJoinColumn

Работа с HQL запросами, параметризованные запросы, применение позиционных и именованных параметров, применение нескольких именованных параметров при использовании 'JOIN', применение именованных запросов, применение классических SQL запросов в Hibernate.


Практическое применение Criteria API.

Создание объектов: CriteriaBuilder, CriteriaQuery, Root.

Работа методов: *.select(), *.orderBy(), *.where(), *.avg(), *.orderBy(), *.having().

Использование 'Tuple - картежей' в запросах.


Практическое применение QueryDSL.

Создание менеджера сущностей JPAQuery средствами QueryDSL.

SQL-одноименные, методы: *.select(), *.from(), *.orderBy(), *.where(), *.avg(), *.orderBy(), *.having().

Применение alias - псевдонимов, отличие методов *.fetch(), *.fetchOne().

Практическое использование Predicate фильтров в QueryDSL запросах. Использование списка предикатов, интерфейс Function, класс ExpressionUtils библиотеки com.querydsl.core.types.


Проблема N + 1.

Решение N+1 проблемы, применение аннотаций: @BatchSize, @Fetch, @FetchProfile.

Применение EntityGraph для решения проблемы N+1, применение аннотаций: @NamedEntityGraph.


Управление транзакциями в Hibernate.

Уровни изолированности транзакций.

Применение аннотаций: @OptimisticLocking, @Version.


Перехват транзакций в Hibernate:

  • обратные вызовы (CallBack);
  • слушатели (Listeners) обратных вызовов (CallBack Listeners) и событий (Event Listeners);
  • перехватчики (Interceptors).

Hibernate Envers - аудирование записей (отслеживание изменений записей в БД).

Применение аннотации: @Audited, @NotAudited, @RevisionEntity, @RevisionNumber, @RevisionTimestamp.

Машина времени в Hibernate - AuditReaderFactory.


Hibernate - Second Level Cache.

Настройка и подключение провайдеров кеша второго уровня.

Особенности применения аннотации: @Cache

Области кеширования. Кеширование сущностей. Кеширование запросов. Настройка времени жизни сущности в кеше второго уровня.


Практическая работа с Hibernate, валидирование сущностей.

About

Hibernate lessons: Primary keys, Embedded components, Mapping entity associations, HQL, Criteria API, QueryDSL, N+1, Transactions & Locks, Listeners & Interceptors, Hibernate Envers, Second Level Cache. Description in doc folders. Section cheat sheet. For memory!

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages