Java 带投影的Hibernate条件转换
我有一个标准,有两个预测,都是总和。结果受某个Id限制,因此它仅为一行。我希望结果是双打的列表 大概是这样的: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
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[]或ListObs:我可以处理对象来做我想做的事情。将其转换为字符串、拆分、转换。。。但我认为必须有一种更聪明的方法来解决这个问题。通过两次咨询解决了这个问题:
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.您可以将结果强制转换为
对象[]
(在您的情况下,它将返回一个包含两个双的对象数组);然后,数组的每个元素都可以单独进行强制转换