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} |
|