powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / hiber n+1?
10 сообщений из 10, страница 1 из 1
hiber n+1?
    #39271076
natanabrahamjr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем, попросили глянуть код. там есть несколько обращений к базе. на первом же обращении к репо хибер сыпет 15тью селектами. ))

высыпает на строчке someRepository.findAll(someSpecification, somePageable) т.е. то, что идет из стандартного интерфейса.

собссно что делать то емае )) там и крутить то вроде нечего. я так понимаю, засада именно в дизайне базы. но... пробовал играться с игер-лейзи зависимостями в базе - что-то эффекта особо не достиг, ну да на пару запросов меньше стало.

пытался переписать поверх интерфейса @Query, но что то так и не разобрался как с джойн фетч работать. да и всё-равно не выйдет нормально, т.к. в этом случае пейджбл оно цепляет, а спецификацию уже нет.

я так понимаю, всё?
...
Рейтинг: 0 / 0
hiber n+1?
    #39271096
no56892
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добывать метод репозитории в кот jpql + joinfetch
...
Рейтинг: 0 / 0
hiber n+1?
    #39271132
natanabrahamjr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
no56892,

угу..

Код: java
1.
2.
3.
interface .....
@Query("select e from SomeEntity e")
Page<?> someMethod(Specification<?> s, Pageable p)



не хочет подцеплять спецификацию... а спека сложная для воспроизведения в квери.

и второй вопрос не разобрался в джойн фетче

у меня есть ентити скажем Коробка, в ентити коробка есть лист Товар.

я пишу select k from Korobka k join fetch Tovar t

он ругается типа нет в селекте обращения к фетчу. бред какой то.
...
Рейтинг: 0 / 0
hiber n+1?
    #39271141
no56892
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Select distinct k from korobka k left join fetch k.tovar
...
Рейтинг: 0 / 0
hiber n+1?
    #39271150
natanabrahamjr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
точно. именнно так и делал. только без дистинкта.
...
Рейтинг: 0 / 0
hiber n+1?
    #39271178
natanabrahamjr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и еще вопрос: я могу так делать, как выше написано, при этом подключая спецификацию к методу? пейджбл работает. а со спекой или нет или я что то не то делаю ))) переносить спеку в квери - это катастрофа. погуглил - нигде такого варианта не нашел. или так нельзя. или так никто не делал.
...
Рейтинг: 0 / 0
hiber n+1?
    #39271627
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
natanabrahamjr,

Добро пожаловать в Мир ОРМ и Spring Data :)

Если коротко то да использовать как уже сказали jpql + joinfetch

+ Specification вы можете добавлять все что хотите и так же их объединять через and /or

Specification - сильный инструмент для фильтров и поиска ...

подумайте как завернуть весь ваш запрос в Specification ?! вместе с Pageable итд

Если хотите разобраться то начните с Видео , но тут, скорее всего, не будет ответа на ваш вопрос ... это лишь базовые знания :)

[spoiler]
YouTube Video
...
Рейтинг: 0 / 0
hiber n+1?
    #39271628
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1Если коротко то да использовать как уже сказали jpql + joinfetch

В актуальных версиях JPA/Hibernate есть на много более прогрессивная штука
Fetch Profile/Entity Graph. Рекомендую.
...
Рейтинг: 0 / 0
hiber n+1?
    #39271654
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczAtum1Если коротко то да использовать как уже сказали jpql + joinfetch

В актуальных версиях JPA/Hibernate есть на много более прогрессивная штука
Fetch Profile/Entity Graph. Рекомендую.
...
Рейтинг: 0 / 0
hiber n+1?
    #39271657
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1Blazkowiczпропущено...

В актуальных версиях JPA/Hibernate есть на много более прогрессивная штука
Fetch Profile/Entity Graph. Рекомендую.

Fetch Profile/Entity Graph а как через них делать фильтр + постраничный вывод ?

(без offfset + limit и order by ? ) = на большом объеме данных такой механизм будет давать тормоза ... нужен будет подзапрос ?!
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / hiber n+1?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]