We are happy to announce the fourteenth bug fix release of the 1.6 series.
Hibernate ORM 6 integration fixes
Thanks to Rustam Sultansoy, another Hibernate ORM 6 integration issue was fixed in this release which ..
Stories, news and announcements regarding Blaze-Persistence
06 November 2024
We are happy to announce the fourteenth bug fix release of the 1.6 series.
Thanks to Rustam Sultansoy, another Hibernate ORM 6 integration issue was fixed in this release which ..
04 November 2024
We are happy to announce the thirteenth bug fix release of the 1.6 series.
Users reported problems with Hibernate ORM 6.6 in Spring and Quarkus applications ..
02 August 2024
We are happy to announce the twelfth bug fix release of the 1.6 series.
So far, the Hibernate ORM 6 integration was tested against Hibernate ORM 6.4. The CI was now updated to also test against ORM 6.5 and 6.6.
Thanks to Eugen Mayer and Andrius Juozapaitis there is now a new integration module ..
10 January 2024
We are happy to announce the eleventh bug fix release of the 1.6 series.
So far, the Hibernate ORM 6 integration was tested against Hibernate ORM 6.4.0.CR1. The integration was adapted due to a slight change in 6.4.0.Final, which unfortunately prevented the use of Blaze-Persistence with that version.
Spring Framework 6.1 apparently removed methods that were previously marked as deprecated, which ..
12 November 2023
We are happy to announce the tenth bug fix release of the 1.6 series.
The Hibernate 6.2 integration now also supports Hibernate ORM 6.3 and 6.4. During testing we uncovered some bugs in Hibernate ORM which have been reported and will be fixed in the upcoming releases.
Since Java 21 will be the next LTS release, we decided that ensuring that version works is vital ..
15 June 2023
We are happy to announce the ninth bug fix release of the 1.6 series.
Hibernate 6.2 was not really backwards compatible to 6.1 with respect to our integration, so we had the need for a new integration.
We uncovered quite a few bugs during testing of Hibernate 6 and only as of Hibernate 6.2.5.Final,
enough bugs were fixed so that we could comfortably call our integration production ready.
This and the fact that only Hibernate 6.2+ is maintained at this point drove us to the decision to drop the old hibernate-6 integration module
and instead create a new module blaze-persistence-integration-hibernate-6.2
.
When updating to Blaze-Persistence 1.6.9 and replacing the integration dependency, don’t forget to also update your Hibernate version to at least 6.2.5.Final.
A big thank you goes out to Eugen Mayer who worked hard on the new Spring integration. Why no support for Spring Boot 3.0 you ask? Because ..
21 November 2022
We are happy to announce the eighth bug fix release of the 1.6 series.
The GraphQL integration was significantly enhanced and now properly interprets various non-null, ignore and naming annotations. It also supports exposing getters as GraphQL fields, which are unknown to Entity Views.
After a user report of issues with the Blaze-Persistence integration when using multiple Spring Data repository implementations,
we had to add a new annotation @EnableBlazeRepositories
for configuring the integration.
Since this new way of configuration also allows for ..
04 August 2022
We are happy to announce the seventh bug fix release of the 1.6 series.
The long awaited Hibernate 6 integration is finally finished. It took longer than anticipated for various reasons. Hibernate 6 changed quite a lot under the hood, and since Blaze-Persistence integrates so deeply with it, it ran into a lot of the early regressions which first had to be fixed in Hibernate 6.
With Hibernate 6.1.1.Final being released, we were finally able to also release the Hibernate 6 integration, as that version ..
29 January 2022
We are happy to announce the sixth bug fix release of the 1.6 series.
In the last release we introduced a dedicated integration module for Hibernate 5.6 because version 5.6.2.Final changed some SPIs that we relied on in a way that required a new integration module. Due to earlier test failures because of the Hibernate version update in Quarkus latest, we didn’t immediately realize that there was an issue with the reflection registration in native mode with the new integration.
This release fixes the missing reflection registrations in the Quarkus integration. ..
19 January 2022
We are happy to announce the fifth bug fix release of the 1.6 series.
Hibernate ORM 5.6.2.Final unfortunately changed SPIs in a backwards incompatible way which was only fixed with the recently released version 5.6.4.Final. To leverage the new SPI methods we had to create a new integration module specific for Hibernate 5.6 though.
So with this version, Blaze-Persistence now also comes with explicit integration modules for 5.5 and 5.6: ..
27 December 2021
We are happy to announce the fourth bug fix release of the 1.6 series. This release again contains not only bug fixes, but also some new features and bug fixes that I would like to highlight.
As of this release, we are publishing artifact variants with an artifact id suffix -jakarta
which, as the name suggests, are Jakarta EE compatible. This means that these artifacts depend on and use the jakarta.*
namespace. We will most likely continue to ship separate artifacts for Jakarta EE compatibility until version 2.0. With version 2.0 we will switch our main artifacts to use the jakarta namespace and instead produce -javaee
artifacts for some time.
Blaze-Persistence now supports ordered set-aggregate functions and the JPQL.Next language was extended to support .. (click here to read more)
10 October 2021
We are happy to announce the third bug fix release of the 1.6 series. This release again contains not only bug fixes, but also some new features that I would like to highlight.
Yet again, thanks to the extensive testing of Eugen Mayer from KontextWork we polished the GraphQL integration even further. The integration now supports inferring nullability of entity view attributes for the generated GraphQL schema based on the mapping expression. On top of that, he also helped us fix an issue with the "single valued association id access optimization" for non primary key based foreign keys, which now also avoids producing a join.
We fixed a few bugs and lifted certain limitations for entity views:
Fix pagination issues when JOIN
fetching for a collection and SUBSELECT
fetching was used
05 September 2021
We are happy to announce the second bug fix release of the 1.6 series. This release contains not only bug fixes, but also quite a few new features/integrations that I would like to highlight.
I’m very happy that Eugen Mayer from KontextWork did some extensive testing of the GraphQL integration (which obviously uncovered some bugs) and prototyped the support for newer graphql-java versions as required for integrating with the Netflix DGS runtime. Thanks to his help, we now also have an example that showcases how our GraphQL integration can be used with Netflix DGS. On top of that, we also added support for SmallRye GraphQL through the Microprofile GraphQL API, as well as added an example application for that and updated the documentation by describing the necessary steps to setup the integration for the various runtimes.
The support for Spring .. (click here to read more)
08 July 2021
We are happy to announce the first bug fix release of the 1.6 series. This release mainly contains bug fixes and one new feature that I would like to highlight.
The Entity-View annotation processor was adapted to be able to run in an incremental fashion i.e. within an incremental Gradle build and was parallelized to improve compilation times. A big thank you goes out to KontextWork and their employees! They sponsored this feature as they had trouble with the build and compilation times and couldn’t stand it anymore.
Now we can all enjoy improved generation and compilation times :)
As for the bug fixes, we improved the SQL we render for VALUES clauses and subqueries in the FROM clause to make it easier for certain database optimizers to efficient generate plans. We also improved the support for running .. (click here to read more)
24 April 2021
We are happy to announce the final release of the 1.6 series. This release mainly fixes bugs and adds a few optimizations.
Some users were still using the 1.5 series although the 1.6 Alpha releases were already considered stable. To avoid confusion about the stability of releases, we will try to avoid using the Alpha label in the future.
Take a look into the changelog for a full list of changes and improvements.
Enjoy the release and stay tuned for the next one!
17 January 2021
We are happy to announce the second alpha release of the 1.6 series. We introduced a few new features and fixed quite a few bugs.
A big thank you goes out to Dane Lowe for implementing the conversion support from entities to entity views. I’d also like to thank Ritesh and slyoldfox for investigating and fixing issues they faced.
Most of the enhancements delivered in this release improve the performance of a few types of queries. The support for GROUPING SETS
is user facing
which allows creating summarizations of aggregated data. For more information about grouping sets, take a look into the documentation.
This version now also adds support for ..
22 October 2020
We are happy to announce the first alpha release of the 1.6 series. We introduced two very interesting features that I would like to highlight.
The first is the support for specifying collection behavior for a multi-collection via the new @MultiCollectionMapping
annotation which can be used
to configure a comparator or ordering for the collection within the indexed collection/map.
The next notable feature is the support for secondary entity view roots which can be imagined like correlations on steroids.
Since we ..
14 September 2020
Here comes the first fix release for 1.5 containing a fix for our Hibernate 5.4 integration. Hibernate 5.4.19.Final introduced a change that broke our integration and since Quarkus updates the Hibernate version pretty quickly, we decided to publish a public 1.5 release containing this fix.
03 September 2020
The last big feature for the 1.5 series, the support for custom index/key mapping expressions for List
and Map
entity view attributes,
was finally finished, which lead to this wonderful release today!
This release is pretty big, containing many bug fixes and quite a few great features. The most notable features are JSON functions to access/manipulate fields of JSON columns, the support for joins in DML statements and the support for ..
08 June 2020
We recently switched from using JDK 9 to JDK 14 for our releases and accidentally compiled MR-JAR contents with the Java 14 classfile version.
This release fixes that, so that you can run Blaze-Persistence again with all Java versions from 9 to 13.
We also fixed a query plan caching bug for DML queries that are using the RETURNING
clause along with
..
30 May 2020
Unfortunately, our Quarkus testsuite didn’t work as expected within the Quarkus Ecosystem CI so we had to do two more release to be able to get into the Quarkus catalog. The nice thing about another release shortly after the previous one is, that we also squeezed a few bug fixes and features into this release.
We added support for Spring HATEOAS and also Spring Boot 2.3 as well as Spring Data 2.3. In an upcoming blog post you will hear more about another new feature, the support for custom ..
14 May 2020
Wow, what a big release! There is so much good stuff in 1.5.0-Alpha2, you definitely should update, also because of some important bug fixes! Our biggest newcomers are the Querydsl integration and Quarkus integration with support for native compilation when using our brand new annotation processor, which generates entity view implementations during compilation. It also generates static metamodels and builder implementations and is useful also for non-Quarkus projects, but more on that in a blog post. Please consider updating soon to avoid running into a concurrency issue ..
18 March 2020
We are happy to announce the first alpha release of the 1.5 series. We introduced a few very interesting features
like MULTISET
fetching for entity views, support for predicates in array expressions and array expression with entity literals as basis.
Apart from the new features, we also fixed quite a few bugs and improved performance. Most notable are bug fixes in updatable entity views.
There were problems in the dirty tracking of indexed collections(List
, Map
) when clearing and re-adding elements.
Using @PreUpdate
entity view lifecycle listeners could also lead to various issues like missed updates.
Version 1.5.0-Alpha1 should be a drop-in replacement for earlier versions and we highly recommend ..
28 January 2020
Here comes the first fix release for 1.4 containing quite a few new features but also a pretty important packaging fix.
Due to build system updates, the META-INF/versions/9
directory in the entity view implementation JAR got lost.
The directory in the JAR is vital for running on Java 11+ as it contains an alternative implementation for defining classes that was introduced in Java 9.
The highlight of the release is the support for subqueries in the FROM
clause and the ..
04 January 2020
We made a cut for the 1.4 series and decided to do the final 1.4.0 release containing mostly bug fixes on top of 1.4.0-Alpha4! The development for 1.4 started in early 2019 and since we received comments, that it appears the 1.3 series is the current stable version, we wanted to make it clear that 1.4 is stable enough. We will most likely deliver a few smaller features in 1.4.x releases, but at some point ..
29 December 2019
Better late than never. Here comes your late christmas present, Blaze-Persistence version 1.4.0-Alpha4! Enjoy Entity View lifecycle listeners, an integration for Jackson deserialization of Entity Views that is built into the Spring WebMvc and JAX-RS integrations automatically. This release also comes with a Spring WebFlux integration and the biggest newcomer is the GraphQL ..
26 October 2019
We just released Blaze-Persistence version 1.4.0-Alpha3 containing quite a few bug fixes as well as a few new features!
We support the newest Spring Boot and Spring Data version 2.2 and now also have support for FULL JOIN
which is supported by Hibernate.
Entity Views equality is now based on the entity inheritance top type and we now also provide a default implementation for toString()
.
We made a few Entity View annotations ..
17 September 2019
We just released Blaze-Persistence version 1.4.0-Alpha2, this time, mostly with new features! The most exciting feature of this release is obviously window function support and the new expression syntax support for it.
If you want to get the number of objects while fetching them and avoid the need for grouping or subqueries, you can now do something like
criteriaBuilder.select("count(*) over (partition by entity.id)")
We added support for the most common window functions, also see ..
29 May 2019
We just released Blaze-Persistence version 1.4.0-Alpha1, again with a lot of bug fixes especially in the Spring Data integration. Don’t be scared about the Alpha bit. By using an Alpha qualifier, we just want to show that new APIs are not final yet, although in this case, the newly introduces APIs are. It’s completely backwards compatible and as always, we advise you to update quickly to avoid getting bitten by the bugs ;)
The most notable bug fixes are:
#812 Clause dependencies are wrongly propagated leading to cardinality mandatory joins not being rendered
#803 Reuse correlated attributes during EXISTS subquery rewrite for implicit joins in ON clause
#801 Wrong calculation of view index in subselect correlator leads to empty correlations
#797 EntityManager resolving in spring data integration is random
#795 Offset query parameter ignored by spring data ..
26 February 2019
We just released Blaze-Persistence version 1.3.2, again with a lot of bug fixes especially in the DeltaSpike Data integration. It’s completely backwards compatible and as always, we advise you to update quickly to avoid getting bitten by the bugs ;)
The most notable bug fixes are:
#720 EntityViewRepository findAll(start,max) fails with ClassCastException
#722 NPE during view attribute accessor resolving when lacking an explicit version mapping
#723 Workaround EclipseLink’s wrong null precedence handling on platforms that don’t support it
#724 Select correlation wrongly tries to load data based on null correlation basis
#725 Select alias expressions should be resolved when ..
15 January 2019
Here comes Blaze-Persistence version 1.3.1 with a lot of bug fixes especially for updatable entity views. It’s completely backwards compatible and we advise you to update quickly to avoid getting bitten by the bugs ;)
The most notable bug fixes are:
#711 Include constantified expression predicates in pagination object query bug core
#709 Updatable entity view containing deeply nested collection that is empty wrongly removes tuples from result bug entity-view
#707 Empty flat view is added to non-indexed collection invalidly
#706 Dirty updatable flat views contained in maps aren’t flushed if re-added
#705 Dirty state is not properly copied when ..
23 November 2018
I’m proud to announce that Blaze-Persistence version 1.3.0 is finally done!
It took so much longer than initially planned, mostly because of the great feedback we received that we simply deemed to be too important to be deferred. We felt that 1.3.0 would only be a partial solution without these fixes and features, so we decided to get those features in before releasing.
The most notable features and bug fixes are:
#667 Validate equals/hashCode implementations of JPA managed types used in entity views to avoid errors due to wrong implementations
#571 Support binding embeddables and associations using compound or foreign keys in CTE’s and DML
#509 Make use of collection DML API for updatable entity views in flushing
#681 Allow updatable entity views to have multiple non-cascading parents
#434 Implement creatability validation for creatable entity views ..
23 November 2018
I will be speaking at the Java Vienna JUG meetup taking place at the Vienna University of Technology on the 3rd of December 2018. The exact location will be published on the meetup page and the talk will start at around 18:25.
The title of the presentation is Entity Views - Not your father’s DTOs and it will be about all the benefits that come with using Entity Views. In the talk I will explain the basic concepts, show some features and present use cases. You can expect a little comparison with other DTO solutions and ..
06 September 2018
Blaze-Persistence version 1.3.0-Alpha3 adds many new features and fixes quite a few issues!
Originally, we didn’t even plan to push out another Alpha release, but we added so many new features and fixed quite a few annoying bugs, that we decided to push out another version instead of letting you wait for the final release.
Unfortunately we had to do some backwards-incompatible changes to the jpa-criteria module as we wrongly made JPA CriteriaQuery
dependent on an EntityManager
which prevented caching. The only difference is that the EntityManager
will now have to be passed to a createCriteriaBuilder
method that was added to the JPA extension interface BlazeCriteriaQuery
instead of passing it during query creation via the BlazeCriteria
utility class.
To support varying page sizes and thus also offsets that aren’t calculatable based on the page
and pageSize
, we introduced new constructors for KeysetPageRequest
and changed the semantics of existing ones in the Spring Data and DeltaSpike Data modules. If you constructed KeysetPageRequest
manually, please review if the constructor that you use fits your needs. Since the DeltaSpike Data integration brings it’s own PageRequest
API, you are also affected of this change when you construct a PageRequest
with the DeltaSpike Data integration.
The most notable features and bug fixes are:
20 July 2018
Blaze-Persistence version 1.3.0-Alpha2 adds a few new features but mainly has focused on bug fixes!
The main features are the support for the new EMBEDDING_VIEW
function in entity views,
that finally allows to refer to the entity relation of a view that embeds a SubqueryProvider
or CorrelationProvider
, but also in case of simple subviews.
Giovanni Lovato did his first PR and added support for passing entity view optional parameters to spring data repository methods via @OptionalParam
,
thank you for that!
A few other notable changes and fixes
#421 Allow the use of OUTER
and macros for subquery correlation joins
#597 Smoothen support for associations in embeddables especially in updatable entity views
#601 Fix problems in entity views with SELECT
fetching of entities with embedded ids
#602 Fix problems in entity views with SUBSELECT
fetching when subview uses named parameters multiple times
#608 Omit null precedence ..
05 July 2018
Here comes version 1.2.1 containing a lot of fixes and 1.3.0-Alpha1 containing new API methods that allow to make use of Hibernate Envers entities with Blaze-Persistence!
Thanks for all the testing and issue reports to Giovanni Lovato who helped a lot with getting Blaze-Persistence to work properly with Hibernate Envers! A big thank you also goes out to Jan-Willem Gmelig Meyling who worked on the support for natural ids and a few other issues! When he finishes working on a the join avoidance optimization for natural ids in Hibernate we are going ..
08 May 2018
We did it! Version 1.2.0 is finally released!
It took a while to get everything right, but now we finally support Java 9 & 10. Updatable entity views now support orphan deletion, the PaginatedCriteriaBuilder API allows to omit the count query and we fixed a few bugs that our ever growing user base reported. I’d like to thank everyone contributing to this excellent release and personally thank Mahesh for helping me polish the Spring Data integration. He reported quite a few bugs and gave a lot of feedback based on his experience of integrating Blaze-Persistence into his project.
As always, we recommend you to update to the latest version especially since we fixed a few bugs that might bite you unexpectedly, like
#544 MacroConfiguration doesn’t implement the comparator for macros correctly
Thanks for the throughout analysis on this Jan-Willem Gmelig Meyling! ..
17 March 2018
Weren’t expecting a new release so fast? Me neither, but as it turns out, the Spring Data and DeltaSpike Data integrations didn’t work quite as expected in real projects, only in our example projects. Our integration essentially replaces the repository implementation of Spring Data and DeltaSpike Data respectively. The implementation unfortunately was lacking the write related methods though, so this lead to startup errors when you were extending from the usual interfaces.
The bug fix for this problem
#540 Impossible to use Spring Data’s JpaRepository or DeltaSpike Data’s EntityRepository
was done quite fast as the underlying problem was merely an oversight.
15 March 2018
We promised you more frequent releases, and here they are! Although we said that this will be the last Alpha release for 1.2.0, we decided that we need another round since we couldn’t get everything done yet for which we already had an API. One of our main concerns was Java 9 compatibility related to split packages. So we moved a few things around and gave all modules proper Automatic-Module-Name manifest entries. We also spent quite some time on supporting REST technologies and providing examples which, but it was worth it! Overall, we have quite a few nice features for you
#323 Support for fetch strategies for non-correlated mappings
#51 Add method to enable query result caching
#450 Updatable attributes by default now allow all known subtypes that don’t introduce cycles, rather than requiring the user to specify all allowed subtypes
#209 Support for compiling and running on JDK 9 & 10 & 11-EA
#538 Spring Data 2.0 and DeltaSpike 1.8 support
#535 Spring Data Rest integration offering first class keyset pagination support
#496 DeltaSpike Data Rest integration offering ..
10 February 2018
It has been too long since the last official release, almost a year! But don’t think we didn’t do anything in this time! Many new and shiny features are part of this release.
#328 DeltaSpike Data integration
#361 Entity view attribute converter support
#414 Updatable Entity views
#419 Improved keyset pagination implementation
#430 Entity view equality now based on entity type rather than entity view type
#443 DML support for entity collections
#496 Entity View convenience methods ..
27 April 2017
This release which should already be available on Maven Central includes some very hot features
01 February 2017
This release includes some very hot features
#264 + #261 Spring and Spring Data Integrations for entity views are available now
#202 Entity views can now have subviews for map keys
#298 Using an undefined CTE class now results in a meaningful exception
#108 Entity views can now correlate unrelated entities with 3 different strategies
#183 Primitive type support in Entity Views ..
29 September 2016
This release includes some very hot features
#222 Entity joins support in core has landed!
#202 Entity views can now reference their view root via VIEW_ROOT
#218 Entity views can also now have a custom root defined when applying the setting
#211 Parser implements negation optimizations
#200 Parser supports literals with type suffix
#193 Subqueries can use correlated paths now
#205 IN-predicate API of core supports Collection now instead of List
#192 Various API changes for supporting multi-subquery expressions
#108 Entity views can now correlate separate queries as subviews to an entity view
#120 Treat support was added
#181 Support for the VALUES clause has been added
#183 JPA Criteria API ..
29 September 2016
This release includes some bugfixes for the core module
This will probably be the last release for the 1.1 branch as 1.2 is approaching the first Alpha release which is quite stable from a user perspective. We recommend updating to 1.2.0-Alpha1 directly.
Older posts are available in the archive.