@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。谁能提供其他选择?
答案 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所说。