почему в случае указания @FetchType.LAZY(в обоих классах), при подгрузке одного объекта, второй тоже подгружается?
СпрингБут?
Когда используется ассоциация @OneToOne с двусторонней связью и FetchType.LAZY, Hibernate попытается отложить загрузку связанного объекта, пока он не будет запрошен. Однако, в случае двусторонней связи, Hibernate всё равно должен знать о связи между этими объектами, чтобы правильно установить связи в памяти. Когда вы получаете один из объектов, Hibernate выполняет запрос к базе данных, чтобы получить этот объект. Поскольку двусторонняя связь требует информации о связанном объекте, Hibernate также выполняет дополнительный запрос для получения связанного объекта, даже если FetchType.LAZY установлен. Таким образом, при использовании двусторонней связи с @OneToOne и FetchType.LAZY, при получении одного объекта Hibernate автоматически загружает связанный объект для обеспечения целостности данных. Если вам требуется полностью отложенная загрузка связанного объекта, вы можете использовать @OneToOne(fetch = FetchType.LAZY) только в одном из классов и @OneToOne(fetch = FetchType.LAZY, mappedBy = "associatedProperty") в другом классе, указав имя ассоциированного свойства. Это позволит загружать связанный объект только при обращении к нему явно.
А если без LLM?)
спасибо большое!
Можете лучше ответить?
Обсуждают сегодня