簡體   English   中英

帶有投影的休眠標准

[英]Hibernate Criteria Cast with Projections

我有一個帶有兩個投影的標准,兩個投影都是和。 結果受某個ID限制,因此僅一行。 我希望結果是雙打列表。

像這樣的東西:

Criteria criteria = session.createCriteria(SomeClass.class).add(Restrictions.eq("id", id))
                       .setProjection(Projections.projectionList()
                          .add(Projections.sum("aFloatColumn"))
                            .add(Projections.sum("anotherFloatColumn")));

我希望結果是數組或列表。

這樣做:

Object result = (Object) criteria.uniqueResult();

結果是值為“ [sum1,sum2]”的單個對象;

當我嘗試將其強制轉換為Double []或List <Double>時,出現java.lang.ClassCastException。 這是因為結果是具有單個值(即元組)的單個對象。

有任何想法嗎?

觀察:我可以處理對象以執行我想要的操作。 將其轉換為String,split,cast ...但是我認為必須有一種更聰明的方法來實現。

解決了兩個咨詢:

    setProjection(Projections.sum("aFloatColumn"));
    List<Double> result = new ArrayList<Double>();
    result.add((Double) criteria.uniqueResult());

    setProjection(Projections.sum("anotherFloatColumn"));
    result.add((Double) criteria.uniqueResult());

如果有人知道怎么做,請告訴我。 Tks。

您可能已經將結果轉換為Object[] (在您的情況下,它將返回一個包含兩個Double的對象數組); 那么該數組的每個元素都可以分別轉換。

暫無
暫無

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

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