【发布时间】:2019-07-25 13:24:06
【问题描述】:
我有一个复杂的本机查询,我正在尝试将其结果映射到非实体 DTO 类。我正在尝试使用JPA 的SqlResultSetMapping 和ConstructorResult
我的 DTO 课程
@Data
public class Dto {
private Long id;
private String serial;
private Long entry;
private int numOfTasks;
}
我的实体类,它具有我将调用此原生查询结果的存储库接口。
@SqlResultSetMapping(
name = "itemDetailsMapping",
classes = {
@ConstructorResult(
targetClass = Dto.class,
columns = {
@ColumnResult(name = "ID"),
@ColumnResult(name = "SERIAL"),
@ColumnResult(name = "ENTRY"),
@ColumnResult(name = "TASKS")
}
)
}
)
@NamedNativeQuery(name = "getItemDetails", query = "complex query is here", resultSetMapping = "itemDetailsMapping")
@Entity
@Data
public class Item {}
存储库
@Repository
public interface ItemRepository extends JpaRepository<Item, Long> {
...
List<Dto> getItemDetails();
}
当我从ItemRepository 调用getItemDetails() 时,出现以下错误:
org.springframework.data.mapping.PropertyReferenceException: 否 找到类型 Item 的属性 itemDetails
SqlResultSetMapping 和 ConstructorResult 的正确使用方法是什么
并解决这个问题。
任何帮助将不胜感激。
【问题讨论】:
标签: java spring-boot jpa spring-data-jpa sqlresultsetmapping