J
Java Машина
@java_mashina247 подп.
81просмотров
32.8%от подписчиков
16 сентября 2024 г.
Score: 89
Proxy - представляет собой паттерн проектирования (заместитель), в котором создаётся подставной объект, который замещает реальный объект. В результате клиентский код, вызывающий данный объект, обращается уже к Proxy-объекту. Тот выполняет свою функцию, а затем уже обращается к исходному объекту. Proxy в Hibernate используется для замены реальной сущности и её отложенной загрузки (lazy loading). С его помощью можно отложить фактическую загрузку данных из базы данных до того момента, когда эти данные понадобятся. Этот механизм необходим для оптимизации производительности, особенно в случаях, когда мы работаем с большими объёмами данных. Пример: @Entity public class Author { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @OneToMany(mappedBy = "author", fetch = FetchType.LAZY) private List<Book> books = new ArrayList<>(); } @Entity public class Book { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; @ManyToOne @JoinColumn(name = "author_id") private Author author; } В данном примере у класса Author есть список книг, помеченный fetch = FetchType.LAZY. Это означает, что для данных книг будет использоваться прокси. То есть они загрузятся только тогда, когда мы непосредственно захотим обратиться к этому списку (лениво). ⚠ Важным моментом является то, что для доступа к lazy объектам потребуется открытая сессия, в противном случае будет вызвано LazyInitializationException (об этом рассказывалось ранее на канале).
81
просмотров
1579
символов
Нет
эмодзи
Нет
медиа

Другие посты @java_mashina

Все посты канала →