Когда Hibernate плевать на ваш OneToOne Lazy Loading

Привет, Друзья!
На связи Михаил Поливаха, технический лидер проекта Axelix.
В рамках программы Hibernate в Spring АйО Academy мы краем обсудили тему, касаемую того, что @OneToOne отличается от других отношений. В частности, Hibernate может спокойно грузить его Eagerly, даже если вы явно поставите FetchType.LAZY. У парней был закономерный вопрос - почему?
И знаете, к моему удивлению, нормального материала в сети я не нашёл. В общем, решил выпустить статью, которая не просто отвечает на этот вопрос, а даёт прямо хороший, развернутый ответ на то, почему Hibernate это делает.
Иными словами, я в статье постараюсь детально пояснить:
Что на самом деле такое FetchType.LAZY?
Почему @OneToOne не всегда возможно сделать Lazy именно в Java?
Почему при этом @ManyToOne можно сделать Lazy всегда (предполагая не final класс сущности)?
Разберём по шагам.

















