Есть ли способ использовать проекции Spring Data JPA, чтобы в некоторых случаях избежать соединения с @SecondaryTable? - PullRequest
0 голосов
/ 08 мая 2020

У меня есть класс сущности JPA, который использует отношение @SecondaryTable для извлечения некоторых из своих полей. Есть несколько запросов к этому объекту, которым нужно вернуть только пару полей, все из основной таблицы.

Я надеялся использовать интерфейс Spring Data JPA Projection с запросом в моем репозитории, чтобы автоматически избежать присоединения на вторичный стол, когда он не нужен. В моем тестировании я еще не смог этого добиться, запрос, сгенерированный Hibernate, всегда присоединяется к вторичной таблице, даже если ни одно из полей вторичной таблицы не находится в проекции. Поддерживается ли это поведение или есть лучший подход, например использование сопоставления @OneToOne?

Я использую Spring Boot 2.2.6 (Hibernate 5.4) и базу данных Postgres.

1 Ответ

0 голосов
/ 11 мая 2020

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

...