如何将 JPA 查询结果映射到 POJO?
How to map JPA query results to a 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。谁能提供其他选择?
尝试使用构造函数:
@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
。
好吧,您可以使用 @SqlResultSetMapping
注释,或者您可以创建自己的界面来将查询字段反映给它。您可以在此处找到这两个示例:
你也可以调用构造函数,就像@Andronicus 说的那样。
@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。谁能提供其他选择?
尝试使用构造函数:
@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
。
好吧,您可以使用 @SqlResultSetMapping
注释,或者您可以创建自己的界面来将查询字段反映给它。您可以在此处找到这两个示例:
你也可以调用构造函数,就像@Andronicus 说的那样。