github quarkiverse/quarkus-jpastreamer 3.0.3.Final

14 months ago

Major changes

This release depends on JPAStreamer 3.0.4.

Google Analytics Has Been Disabled

Due to a large number of requests to disable the Google Analytics component, we have decided to remove it altogether. That means 3.0.4 and later will not send any user data to Google, see #107.

Improved Support for JPA Inheritance

Up until now, JPAStreamer had limited support for JPA inheritance, meaning the generated metamodel entities did not include references to inherited fields. This release ensures that the JPAStreamer metamodel acknowledges inherited fields from @MappedSuperclasses and parent @Entites, see #328.

Added Support for mapMulti()

JPSStreamer now has support for the various versions of mapMulti() that were introduced in Java 16. The mapMulti() function enables the mapping of a single element within the Stream to zero or multiple elements, contingent on specific conditions.

For illustrative purposes, here is a Stream query that fetches films from a database and maps each film to any starring Actors that has a first name that starts with the letter "A".

 jpaStreamer.stream(StreamConfiguration.of(Film.class).joining(Film$.actors))
        .filter(Film$.length.greaterThan(120))
        .mapMulti((f, mapper) -> {
                    f.getActors().stream()
                            .filter(a -> a.getFirstName().startsWith("A"))
                            .forEach(mapper);
                })
                .forEach(System.out::println);

Complete changelog

#371 Add support for mapMulti()
#370 Add support for toList()
#368 Metamodel classes not generated properly when using hibernate validator with quarkus
#359 Cannot generate $ icon files under annotations folder of generated-sources
#328 Code generator: Include fields from parent classes
#291 No Persistence provider for EntityManager named
#109 StreamBuilder does not implement takeWhile and dropWhile
#107 Remove module jpastreamer.analytics

Don't miss a new quarkus-jpastreamer release

NewReleases is sending notifications on new releases.