Как отобразить результаты запроса JPA в POJO? - PullRequest
1 голос
/ 23 апреля 2019
@Query("SELECT tt, at.field, at.anotherField from TableTest tt LEFT JOIN AnotherTable at ON at.commonField = tt.commonField")
List<TestPojo> findAllPojo(List<TableTestDTO> TableTestDTOList);

Как можно сопоставить результаты этого запроса JPA с Pojo без собственного запроса, как этот подход ?

Я использую JPA и Hibernate.Кто-нибудь может предоставить другой вариант?

Ответы [ 2 ]

0 голосов
/ 23 апреля 2019

Ну, вы можете использовать аннотацию @SqlResultSetMapping или создать свой собственный интерфейс для отображения полей запроса. Вы можете найти оба примера здесь: Spring Data JPA отображает собственный результат запроса в не-Entity POJO

Вы также можете вызвать конструктор, как сказал @Andronicus.

0 голосов
/ 23 апреля 2019

Попробуйте использовать конструктор:

@Query("SELECT new TestPojo(tt, at.field, at.anotherField) from TableTest tt LEFT JOIN AnotherTable at ON at.commonField = tt.commonField")
List<TestPojo> findAllPojo(List<TableTestDTO> TableTestDTOList);

Конечно, такой конструктор должен существовать, и еще лучше было бы поместить полное имя вместо чистого TestPojo.

...