我在我的項目中使用彈簧數據JPA。我正在玩數百萬條記錄。我有一個要求,我必須爲各種表獲取數據並構建一個對象,然後在UI上繪製它。現在如何實現這個我的Spring數據倉庫。我已經讀過,它可以通過命名本機查詢來實現。Spring Data JPA:Query如何返回非實體對象或對象列表?
如果命名原生查詢沒有返回一個實體或實體 的列表,我們可以將查詢結果通過 使用@SqlResultSetMapping註解映射到正確的返回類型。
但是,當我試圖使用@SqlResultSetMapping
它走另外entityResult。意思是我所理解的僅僅是將一些查詢結果轉換爲實體結果集,但我想要一個非實體對象的結果集。
@SqlResultSetMapping(
name="studentPercentile",
entities={
@EntityResult(
entityClass=CustomStudent.class,
fields={
@FieldResult(name="id", column="ID"),
@FieldResult(name="firstName", column="FIRST_NAME"),
@FieldResult(name="lastName", column="LAST_NAME")
}
)
}
)
@NamedNativeQuery(
name="findStudentPercentile",
query="SELECT * FROM STUDENT",
resultSetMapping="studentPercentile")
在上面的例子中,我只是想從學生的實體結果到另一個POJO「CustomStudent」,這是不是一個實體。 (這個例子我試圖執行只是爲了POC目的,實際用例是非常複雜的,複雜的查詢返回的結果集不同)。
如何實現上述用例?除了使用名稱查詢,我的存儲庫方法返回非實體對象還有其他方法嗎?
我遇到了同樣的問題來到最近並很高興看到有人發帖,並得到了一個解決方案,它呢! – 2017-06-17 02:53:18