The Query class could introduce the #stream() method for processing the result on the application level. Eventually this might be similar functionality as the Hibernate filter API provides.
e.g. {code] List<Event> events = session.createQuery("from Event") .stream() .filter(e -> e.getTitle == "Java 8") // does some optional filtering or any other operation on the result set .collect(Collectors.toList())
|