English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Разница между отложенной загрузкой и жаждой загрузки в Hibernate

Lazy и Eager - это два типа стратегий загрузки данных в ORM, такие как Hibernate и Eclipse Link. Когда класс сущности ссылается на другие сущности (например, Employee и Phone (телефон сотрудника)), мы используем эти стратегии загрузки данных. 

Отсроченная загрузка- Данные о关联е загружаются только тогда, когда мы явно вызываем метод getter или size.

  • Используйте отсроченную загрузку при использовании множества к одному.

  • Используйте «отсроченная загрузка», когда вы уверены, что не используете связанные сущности. 

Eager загрузка- Загрузка данных происходит при получении родительского элемента.

  •  Используйте «срочная загрузка», когда у вас не так много отношений. Таким образом, срочная загрузка - это хорошая привычка для уменьшения дальнейших запросов на сервере.

  • Используйте «срочная загрузка», когда вы уверены, что хотите использовать principal entity везде.

НомерКлючОтсроченнаяСрочная
1
Стратегия извлечения 
В случае отсроченной загрузки данные о关联е загружаются только тогда, когда мы явно вызываем метод getter или size.
В случае срочной загрузки данные загружаются при получении их родительского элемента 
2
Стратегия по умолчанию в ORM-слое 
По умолчанию, ManyToMany и OneToMany отношения используют стратегию отсроченной загрузки.
По умолчанию,ManyToOne и OneToOne отношения используют стратегию отсроченной загрузки.
3
Загрузка конфигурации
Его можно включить с помощью параметра комментария:

fetch = FetchType.LAZY 
Его можно включить с помощью параметра комментария:

fetch = FetchType.EAGER
 4
Производительность
Время загрузки по умолчанию короче, чем при срочной загрузке
Загрузка избыточных данных может повлиять на производительность
Основной учебник