Sounds better, for sure.
Regards,
Michael
On Thu, May 4, 2017 at 7:56 PM, Steve Ebersole <steve_at_hibernate.org> wrote:
> Can we call it #stream instead of #getResultStream? This would be more
> consistent with other steaming calls in Java
>
> On Thu, May 4, 2017, 4:40 PM Michael Nascimento <misterm_at_gmail.com> wrote:
>
>> This change seems very valuable and welcome, for sure.
>>
>> Regards,
>> Michael
>>
>>
>> On Thu, May 4, 2017 at 5:01 PM, Lukas Jungmann <lukas.jungmann_at_oracle.com
>> > wrote:
>>
>>> Hi,
>>>
>>> another change I'd like to propose is an addition of
>>> getResultStream:Stream method to javax.persistence.Query/TypedQuery
>>> interfaces with following javadoc and provided with default implementation:
>>>
>>> javax.persistence.Query:
>>>
>>> * /***
>>> * * Execute a SELECT query and return the query results*
>>> * * as an untyped <code>java.util.Stream</code>.*
>>> * * By default this method delegates to
>>> <code>getResultList().stream()</code>,*
>>> * * however persistence provider may choose to override this method*
>>> * * to provide additional capabilities.*
>>> * **
>>> * * @return a stream of the results*
>>> * * @throws IllegalStateException if called for a Java*
>>> * * Persistence query language UPDATE or DELETE statement*
>>> * * @throws QueryTimeoutException if the query execution exceeds*
>>> * * the query timeout value set and only the statement is*
>>> * * rolled back*
>>> * * @throws TransactionRequiredException if a lock mode other than*
>>> * * <code>NONE</code> has been set and there is no
>>> transaction*
>>> * * or the persistence context has not been joined to the
>>> transaction*
>>> * * @throws PessimisticLockException if pessimistic locking*
>>> * * fails and the transaction is rolled back*
>>> * * @throws LockTimeoutException if pessimistic locking*
>>> * * fails and only the statement is rolled back*
>>> * * @throws PersistenceException if the query execution exceeds *
>>> * * the query timeout value set and the transaction *
>>> * * is rolled back *
>>> * * @see Stream*
>>> * * @see #getResultList()*
>>> * * @since 2.2*
>>> * */*
>>> * default Stream getResultStream() {*
>>> * return getResultList().stream();*
>>> * }*
>>>
>>> similarly to javax.persistence.TypedQuery:
>>>
>>> * /***
>>> * * Execute a SELECT query and return the query results*
>>> * * as a typed <code>java.util.Stream</code>.*
>>> * * By default this method delegates to
>>> <code>getResultList().stream()</code>,*
>>> * * however persistence provider may choose to override this method*
>>> * * to provide additional capabilities.*
>>> * **
>>> * * @return a stream of the results*
>>> * * @throws IllegalStateException if called for a Java*
>>> * * Persistence query language UPDATE or DELETE statement*
>>> * * @throws QueryTimeoutException if the query execution exceeds*
>>> * * the query timeout value set and only the statement is*
>>> * * rolled back*
>>> * * @throws TransactionRequiredException if a lock mode other than*
>>> * * <code>NONE</code> has been set and there is no
>>> transaction*
>>> * * or the persistence context has not been joined to the
>>> transaction*
>>> * * @throws PessimisticLockException if pessimistic locking*
>>> * * fails and the transaction is rolled back*
>>> * * @throws LockTimeoutException if pessimistic locking*
>>> * * fails and only the statement is rolled back*
>>> * * @throws PersistenceException if the query execution exceeds *
>>> * * the query timeout value set and the transaction *
>>> * * is rolled back *
>>> * * @see Stream*
>>> * * @see #getResultList()*
>>> * * @since 2.2*
>>> * */*
>>> * default Stream<X> getResultStream() {*
>>> * return getResultList().stream();*
>>> * }*
>>>
>>> Do you think this is OK or does it give providers to big freedom?
>>>
>>> Thank you,
>>> --lukas
>>>
>>
>>