jpa
.pdfВыборка (fetch) в JPA
Fetch определяет при выборке сущности действия со связанными сущностями
FetchType enum
◦EAGER
Связанная сущность загружается вместе со связывающей
По умолчанию для «к-одному» связей
2-81
Выборка (fetch) в JPA
◦LAZY
Связанная сущность загружается
при первом использовании в
приложении
По умолчанию для «ко-многим» связей
«Совет» JPA-механизму, который может по своему усмотрению использовать «раннюю» выборку
2-82
Поддерживаемые типы связей в JPA
Интерфейсы из java.util:
◦Collection
◦Set
◦List
◦Map
Коллекции должны быть коллекциями
сущностей
Map'ы должны иметь примитивные ключи и значения-сущности
2-83
Сортировка списков в JPA
Списки не сортируются
имплицитно
◦Для указания сортировки используется аннотация
@OrderBy
JPA использует сортировку только при выборке
2-84
Четыре стандартных аннотации связей
2-85
Атрибуты аннотаций связей
Атрибут fetch
◦Значение по умолчанию зависит от типа отношений
Атрибут cascade
По умолчанию — отсутствие каскадирования
2-86
Один-к-одному
Все «к-одному» отношения имеют атрибут optional
◦По умолчанию — true
Если связь двунаправленная, одна из сторон — владелец
◦Вторая сторона использует атрибут mappedBy
2-87
Один-к-одному
Все «к-одному» отношения имеют значение атрибута fetch по умолчанию EAGER
◦Переопределение:
Столбец вторичного ключа имеет ограничение на уникальность
2-88
Много-к-одному
Всегда владелец какой-либо
двунаправленной связи
Значение атрибута fetch по умолчанию — EAGER
Вторичный ключ не имеет ограничения на уникальность
2-89
Один-ко-многим
Значение атрибута fetch по умолчанию для всех «комногим» связей — LAZY
В случае двунаправленных связей используется атрибут mappedBy
2-90