Hibernate LazyInitialization @OneToOne - PullRequest
       18

Hibernate LazyInitialization @OneToOne

0 голосов
/ 10 декабря 2018

У меня проблема с активной загрузкой через join fetch отношение, помеченное как lazy.

@ManyToOne(fetch=FetchType.LAZY)
@LazyToOne(LazyToOneOption.NO_PROXY)
@JoinColumn(name = "type_id")
private TypeEntity type;

Из-за проблем с производительностью мы в настоящее время перемещаем все свойства, которые с нетерпением загружаются в отложенную загрузку.(@OneToOne и @ManyToOne)

Я следил за статьей Vladmihalcea (https://vladmihalcea.com/the-best-way-to-map-a-onetoone-relationship-with-jpa-and-hibernate/) и включил усовершенствование байт-кода, чтобы разрешить отложенную загрузку свойств @OneToOne.

Теперь это работает хорошо, и я получаюмоя сущность без дополнительных объединений, когда я выбираю ее, но когда я хочу с нетерпением извлечь некоторые отношения (через left join fetch entity.relation), они не загружаются. Я могу загрузить их только путем доступа к получателю, который запускает новый запрос SQL для его извлечения.

Я ожидаю, что эти отношения присоединения будут добавлены в мою сущность для последующего доступа к ней даже вне транзакции и без расширения доступа к базе данных.

Я активировал ведение журнала гибернации, и сгенерированный запрос кажется хорошим (Я вижу объединение в таблице, которое я хочу получить с нетерпением, и эти поля включены в оператор выбора вместе с основным объектом).

Любая идея, почему left join fetch entity.relation не загружает отношение при успешном извлеченииэто? Вне транзакции он выбрасывает Unable to perform requested lazy initialization

Мы используем SpringBoot 1.5.1 с Hibernели 5.0.11.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...