[hibernate-dev] Stream result change proposal

Steve Ebersole steve at hibernate.org
Tue Jun 7 09:20:38 EDT 2016


So long as we limit that to the Stream access, +1

On Tue, Jun 7, 2016 at 5:07 AM andrea boriero <andrea at hibernate.org> wrote:

> it sounds reasonable to me
>
> On 7 June 2016 at 10:57, Vlad Mihalcea <mihalcea.vlad at gmail.com> wrote:
>
> > To get a picture of why we need this, consider the following example from
> > the docs:
> >
> > Stream<Object[]> persons = session.createQuery(
> >    "select p " +
> >    "from Person p " +
> >    "where p.name like :name" )
> > .setParameter( "name", "J%" )
> > .stream();
> >
> > Map<Phone, List<Call>> callRegistry = persons
> >    .map( row -> Person.class.cast( row[0] ) )
> >    .flatMap( person -> person.getPhones().stream() )
> >    .flatMap( phone -> phone.getCalls().stream() )
> >    .collect(Collectors.groupingBy(Call::getPhone));
> >
> >
> > The .map( row -> Person.class.cast( row[0] ) ) call should be avoided and
> > we should return a Stream<Person> in this case.
> >
> > Vlad
> >
> > On Tue, Jun 7, 2016 at 12:50 PM, Vlad Mihalcea <mihalcea.vlad at gmail.com>
> > wrote:
> >
> > > Hi,
> > >
> > > While writing documentation for the new 5.2 Query.stream() API, I
> > realized
> > > that we don't return a Stream<T>, but a Stream<Object[]> which could
> > > confuse users.
> > > This is because ScrollableResultsImpl does something like this:
> > >
> > > if ( result != null && result.getClass().isArray() ) {
> > >    currentRow = (Object[]) result;
> > > }
> > > else {
> > >    currentRow = new Object[] {result};
> > > }
> > >
> > > The result is the actual entity that we queries, while the currentRow
> is
> > an Object[].
> > >
> > > I think we might want to change the stream result so that we return the
> > result for each available entry.
> > >
> > > Vlad
> > >
> > _______________________________________________
> > hibernate-dev mailing list
> > hibernate-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/hibernate-dev
> >
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev
>


More information about the hibernate-dev mailing list