如何将JPA查询结果映射到POJO?

时间:2019-04-23 15:48:56

标签: java spring spring-data-jpa pojo

@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,例如this approach

我正在使用JPA和Hibernate。谁能提供其他选择?

2 个答案:

答案 0 :(得分:0)

尝试使用构造函数:

@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

答案 1 :(得分:0)

您可以使用@SqlResultSetMapping批注,也可以创建自己的界面以将查询字段反映给它。您可以在此处找到两个示例:Spring Data JPA map the native query result to Non-Entity POJO

您也可以调用构造函数,如@Andronicus所说。