When a ` {{ CriteriaQuery<Tuple> ` }} has a multiple selection such as ` {{ query.multiselect(sel1, sel2) ` }} , one would expect the resulting ` {{ session.createQuery(query).stream() ` }} to be a ` {{ Stream<Tuple> ` }} , but its elements are ` {{ Object[] ` }} .
{code:java} CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); CriteriaQuery<Tuple> criteriaQuery = criteriaBuilder.createQuery(Tuple.class); // Root<SampleEntity> from = criteriaQuery . from(SampleEntity . class); Path<Double> path = from . get("foo"); criteriaQuery.multiselect(criteriaBuilder.sum(path), criteriBuilder.avg(path)); Query<Tuple> query = session.createQuery(criteriaQuery); Stream<Tuple> stream = query.stream();
Tuple tuple = stream.findAny().get(); {code}
This would result in:
{code} java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to javax.persistence.Tuple {code} |
|