170 похожих чатов

Всем привет. spring+hibernate. может есть, кто сталкивался с проблемой FetchType.LAZY

при выполнении запросов через Criteria API? Суть в следующем:
есть Entity, в которой @ManyToOne(fetch = FetchType.LAZY)
делаю запрос через критериа апи примерно такого плана:
cb.equal(root.get("id"), id)
при выполнении через метод findAll() репозитория в логах вижу, что вместе с запрашиваемой родительской сущностью, достается отдельным запросом еще и дочка, которая вроде как должна быть LAZY. если кто борол такую шляпу, буду признателен за подсказки.

12 ответов

40 просмотров

Можешь попробовать FetchType.EAGER

Константин-Шурухин Автор вопроса

у вас там случаем нигде эта дочерняя сущность не вызывается, может в toString для вывода в лог или ещё где

Константин-Шурухин Автор вопроса
Sergey Bezrukov
у вас там случаем нигде эта дочерняя сущность не в...

не, вывода в лог нет, да и дочерняя сущность, кроме как в поле родителя, нигде не фигурирует

С точки зрения JPA - Lazy это просто рекомендация рантайму, которой он может и пренебречь. Надо, наверное, в отладчике глянуть - как там Хибер такие решения принимает The LAZY strategy is a hint to the persistence provider runtime that data should be fetched lazily when it is first accessed. The implementation is permitted to eagerly fetch data for which the LAZY strategy hint has been specified. https://docs.oracle.com/javaee/7/api/javax/persistence/FetchType.html

это может происходить с @OneToOne полями я бы поставил на то что где-то неявно вызывается геттер этого ленивого поля например mapstruct'ом или modelmapper'ом или ту стрингом или equalsом

Константин-Шурухин Автор вопроса
Sergey Bezrukov
С точки зрения JPA - Lazy это просто рекомендация ...

эхх, хибер меня добьет когда-нить своим неопределенным поведением. есть еще вопрос на SO почти трехлетней давности, там тоже так и не выдали работающее решение https://stackoverflow.com/questions/63315523/lazy-loading-not-working-with-specification

Константин-Шурухин Автор вопроса
Роман Нагаев
это может происходить с @OneToOne полями я бы пост...

ну так мапстракты и прочее уже сильно после вызываются. да и при LAZY оно должно референсами дочерние сущности в полях заполнять по идее

Константин Шурухин
ну так мапстракты и прочее уже сильно после вызыва...

прокси сразу, подтягивание при первом обращении помимо мапстракта как уже писали выше это ломбок может подкинуть через equals или tostring

Роман Нагаев
прокси сразу, подтягивание при первом обращении по...

особенно если стоит какая нить аннотация @Data

Константин-Шурухин Автор вопроса
Роман Нагаев
прокси сразу, подтягивание при первом обращении по...

не, equals и hashCode переопределены руками и там всё чисто. ломбок ток для геттеров/сеттеров и конструктора

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта