【发布时间】:2019-07-15 06:02:00
【问题描述】:
我想进行复杂的查询并将结果映射到 DTO。 DTO 如下:
@Value(staticConstructor = "of")
public class TotalsDto {
LocalDate date;
long totals;
long totalPerCategory;
int categoryId;
String categoryName;
}
我的存储库接口是从JpaRepository 扩展而来的。这是抛出一个IllegalArgumentException: Not a managed type,因为TotalsDto 本身不是实体。
存储库是:
@Repository
public interface TotalsRepository extends JpaRepository<TotalsDto, Integer> {
@Query(value = "SELECT ...", nativeQuery = true)
List<TotalsDto> getTotals(params...);
}
查询正在从其他实体获取数据以构建 DTO。
有什么方法可以将每一列映射到 DTO?我试图用下面的查询映射它,但它仍然得到Not a managed class。
SELECT my.package.TotalsDto.of(column1, subqueryResult1, subqueryResult2...)
【问题讨论】:
-
您可以参考这篇文章:vladmihalcea.com/…
标签: java spring jpa spring-data-jpa spring-data