An Oracle blog about Java Technology

JPA and Java SE 8 Streams

David Delabassee
Software Evangelist

Retrieving a large, i.e. a very large, dataset using JPA might be
tricky as the whole result set has to fit within a java.util.List
instance. So a very large data set might potentially hit the memory
limits of the sever the application is running on.

For those scenarios with (very) large result set, pagination can be
used to work-around that limitation.  See for example this "How To
Stream/Serialize JPA Result As JAX-RS Response For Large Data
article.  But for those scenarios, the Java 8 Streams API would also be a
good fit! Unfortunately, Streams are not supported in the current
release of JPA (JPA 2.1 - JSR 338) as it predates Java SE 8. But
this is clearly a potential RFE for the next update of JPA (see this specification RFE here).
In addition, some of the JPA implementations have already started to
add support for Java 8 Streams (e.g. Hibernate and EclipseLink).

We will have to wait a bit more to see what the scope of
'JPA.next' will be. What do you think? Would you like to see Java SE 8 Streams supported in 'JPA.Next'?

Be the first to comment

Comments ( 0 )
Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.