簡體   English   中英

JPA條件使用SUM和Group By查詢新列

[英]JPA Criteria query new column with SUM and Group By

我正在嘗試使用類似此SQL的條件查詢來創建新的計算的col:

SELECT *, SUM(quantity) + SUM(pledged) as total, SUM(pledged) as pledged FROM stock_position GROUP BY partner_id, product_id

我需要獲取此結果並將其設置為另一個實體,因此我需要使用別名total並映射到實體。 但是我沒有辦法做到這一點。 我嘗試了下面的代碼。

    final CriteriaQuery<Stock> query = getCriteriaBuilder().createQuery(Stock.class);
    final Root<StockPosition> root = query.from(StockPosition.class);

    Expression<Double> quantity = getCriteriaBuilder().sum(root.<Double> get("quantity"));
    Expression<Double> pledged = getCriteriaBuilder().sum(root.<Double>get("pledged"));
    Expression<Double> total = getCriteriaBuilder().sum(quantity, pledged);

    query.select(total); //THIS GIVES ME ERROR
    query.groupBy(root.get("partner"), root.get("product"));

當然類型不同,但是我不知道如何映射。 任何人都可以伸出援手嗎?

謝謝

簡單:您想要總結一些值,但是查詢需要一個Stock類的實體。

正確的聲明如下:

final CriteriaQuery<Double> query = getCriteriaBuilder().createQuery(Double.class);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM