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

Почему если я использую findByFlight_Destination(), который для поиска сущностей использует

join и при этом я ставлю @EntityGraph, чтобы получить joined сущность собственно, то у меня sql join дуплируется в запросе?

@EntityGraph(attributePaths = "flight")
List<FlightSeat> findByFlight_Destination(City city);

22 ответов

38 просмотров
Ineffable- Автор вопроса

во FlightSeat flight стоит с FetchType.LAZY

я бы поставил на то что хибер идёт в один джоин при поиске а во второй - при заполнении сущностей у хибера join(собственно join) и fetch(заполнение сущностей данными) это отдельные операции, по всей видимости ты join триггеришь в методе + join fetch в ентити графе

Ineffable- Автор вопроса
Роман Нагаев
я бы поставил на то что хибер идёт в один джоин пр...

Да, так и есть. Но почему он не может опмитимтизровать, и использовать 1 join. Странно

Ineffable
Да, так и есть. Но почему он не может опмитимтизро...

хз, могу предлжить поправить тело метода и делать фетч там вообще без ентити графа, я не вижу аннотаций, подозреваю что там у тебя критерия, в ней можно сделать join fetch через приведение типов(возможно есть и другие способы) https://thorben-janssen.com/hibernate-tip-left-join-fetch-join-criteriaquery/#defining-a-join-fetch-clause

Alexandr ∨∧‾ Emelyanov
Чел, там spring data jpa...

даже если так, ну вместо query creation проще использовать @Query и jpql, суть в том чтобы и джоин и фечт делать в одном месте

Можно, но зачем? Запрос и так будет нормально работать

Ineffable
Да, так и есть. Но почему он не может опмитимтизро...

Потому что разная семантика. Допустим есть одна запись в flight_seats и две в flights - одна с destinationА, другая c destinationB И допустим в запрос передаем условие что нужен destinationA. Если сделать один join, то в итоговом результате в flight_seats будет поле flight с одним единственным элементом. А хибер правильно выполняет то что ему сказано - сначала одним join'ом ищет нужные flight_seat (т.е. только те у которых есть flight с destinationA). И т.к. указан EntityGraph то для них он подгружает _полную_ коллекцию flights. Т.е. в результате будут нужные flight_seat, но у них в flights будут _все_ связанные flights, а не только с нужным destination.

Ineffable- Автор вопроса
Igor Labutin
Потому что разная семантика. Допустим есть одна за...

а это воопще нормально, что этот метод дополнительно вызывает count query, хотя он возвращает мне List. public interface FlightSeatRepository extends CrudRepository<FlightSeat, Long> { List<FlightSeat> findAll(Specification<FlightSeat> specs, Pageable pageable); }

Ineffable
а это воопще нормально, что этот метод дополнитель...

Нет, он не должен вызывать. Тебе наверно лог соседнего запроса ещё попал

Ineffable- Автор вопроса
Alexandr ∨∧‾ Emelyanov
Нет, он не должен вызывать. Тебе наверно лог сосед...

Да вроде бы ничего там не вызывает count query. Магия . Ладно просто забью на это

Посмотри хотя бы в том же потоке залоггировано или нет

Ineffable
как ?)

У тебя лог как пишется? Там обычно в записи имя потока пишется

Ineffable- Автор вопроса

Hibernate: query у меня не пишется . У меня дефолтное логирование запросов. Я просто поставил spring.jpa.show-sql: true

Alexandr ∨∧‾ Emelyanov
Джун?

не джун а старший инженер

Ineffable- Автор вопроса
Ineffable
хуже

Тогда в @javastart

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

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

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Всем привет! Кто пользуется DevExpress, подскажите пожалуйста, реализован ли в TcxGrid в новых версиях поиск по датам как в Экселе (ну т.е. не просто список чекбоксов со значе...
A Z
4
Карта сайта