![](/img/trans.png)
[英]Spring Data JPA - Custom Query with multiple aggregate functions in result
[英]JPA and aggregate functions. How do I use the result of the query?
我是ORM的新手,我需要一些幫助來理解一些東西。
假設我有以下標准SQL查詢:
SELECT *, COUNT(test.testId) AS noTests FROM inspection
LEFT JOIN test ON inspection.inspId = test.inspId
GROUP BY inspection.inspId
我想在JPA中使用它。
我有一個與Test實體有一對多關系的Inspection實體。 (檢查有很多測試)我試過在JPQL中寫這個:
Query query = em.createQuery("SELECT insp, COUNT(???what???) " +
"FROM Inspection insp LEFT JOIN insp.testList " +
"GROUP BY insp.inspId");
1)如何編寫COUNT子句? 我必須將count應用於測試表中的元素,但testList是一個集合,所以我不能像COUNT(insp.testList.testId)
那樣做smth COUNT(insp.testList.testId)
2)假設1已解決,將返回什么類型的對象。 它肯定不是檢驗對象......我如何使用結果?
AS
) List
所以:
SELECT new com.yourproject.ResultHolder(insp, COUNT(test.testId))
FROM Inspection insp LEFT JOIN insp.testList AS test GROUP BY insp.inspId
要么
SELECT new list(insp, COUNT(test.testId))
FROM Inspection insp LEFT JOIN insp.testList AS test GROUP BY insp.inspId
然后,結果可以作為ResultHolder
的實例訪問,也可以作為java.util.List
,其中insp
是list.get(0)
,計數是list.get(1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.