Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带投影的Hibernate条件转换_Java_Hibernate_Casting_Criteria_Hibernate Criteria - Fatal编程技术网

Java 带投影的Hibernate条件转换

Java 带投影的Hibernate条件转换,java,hibernate,casting,criteria,hibernate-criteria,Java,Hibernate,Casting,Criteria,Hibernate Criteria,我有一个标准,有两个预测,都是总和。结果受某个Id限制,因此它仅为一行。我希望结果是双打的列表 大概是这样的: Criteria criteria = session.createCriteria(SomeClass.class).add(Restrictions.eq("id", id)) .setProjection(Projections.projectionList() .add(Proje

我有一个标准,有两个预测,都是总和。结果受某个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时,我得到java.lang.ClassCastException。这是因为结果是一个具有一个元组值的单个对象

有什么想法吗


Obs:我可以处理对象来做我想做的事情。将其转换为字符串、拆分、转换。。。但我认为必须有一种更聪明的方法来解决这个问题。

通过两次咨询解决了这个问题:

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

    setProjection(Projections.sum("anotherFloatColumn"));
    result.add((Double) criteria.uniqueResult());
setProjection(projects.sum(“aflaotcolumn”);
列表结果=新建ArrayList();
添加((双)条件.uniqueResult());
setProjection(projects.sum(“另一个floatcolumn”);
添加((双)条件.uniqueResult());

如果有人知道如何用单枪射击,请告诉我。Tks.

您可以将结果强制转换为
对象[]
(在您的情况下,它将返回一个包含两个
的对象数组);然后,数组的每个元素都可以单独进行强制转换