Releases: Blazebit/blaze-persistence
1.3.2
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 copying a query or when switching the select clause
- #728 Non-entity-view deltaspike repository method wrongly tries to resolve entity class via view class
- #729 Repository method findAll(int start, int max) for entity type doesn't properly paginate
- #733 Replacing normal collection with recording during flush fails because of invalid setParent call due to ClearAction
- #734 Readonly parents collection isn't copied when replacing the attribute values
- #736 Updatable plural attribute doesn't allow updatable/creatable subtypes when missing the setter
Take a look into the changelog for a full list of changes and improvements.
Thanks to all contributors for reporting issues and helping us understand the root causes.
The first alpha release of 1.4.0 will still take some time to bake because of entity view lifecycle listeners which takes some time to get right. We will publish it as soon as we have an acceptable version you can try out!
1.3.1
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 converting between view types
- #702 Invalid handling of discriminator predicate in collection update query generation
- #701 Basic element types of collection bindings are being expanded
- #694 Joining embeddable on correlated root with JPA Criteria API produces invalid JPQL
Take a look into the changelog for a full list of changes and improvements.
Thanks to all contributors for reporting issues and helping us understand the root causes.
The first alpha release of 1.4.0 depends on a big ticket issue for entity view lifecycle listeners which takes some time to get right. We will publish it as soon as we have an acceptable version you can try out!
1.3.0
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
- #402 Special rendering of implicit joins in ON clause
- #517 Validate inverse remove strategy SET_NULL against column nullability
- #679 Spring Domain events related bug fixes
Take a look into the changelog for a full list of changes and improvements.
Once again I would like to thank Giovanni Lovato for all the issues he reported. He was testing out early implementations of the query flush strategy for updatable entity view collections
and went through many test-debug cycles with me to get the implementation right for even the most complex JPA models. Without his feedback and patience, the release wouldn't be as good as it is. Thanks for your contribution and keep up the good work!
Thanks to Jan-Willem Gmelig Meyling we caught up on changes coming with Hibernate 5.4 and adapted our implementations to be able to provide a consistent experience!
One of these changes is that with Hibernate 5.4 you will now be able to leverage the single value id access optimization not only for primary ids, but also for natural ids.
With version 1.3.0 a.k.a. Fury being done, we will start working on 1.4.0 a.k.a. Coulson. We might port back critical fixes to 1.3, but in general we don't anticipate to do any further public 1.3 releases.
Since 1.4 is backwards compatible, it should be no problem to work with 1.4.0 Alpha releases to get fixes that were done on master.
If you need fixes back-ported, I would like to direct you to our commercial support.
1.3.0-Alpha3
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:
- #612 Initial Hibernate 5.4 support
- #648 Support for Spring Data 2.1
- #305 Problems with the use of the VALUES clause and parameters in the select clause have been fixed
- #622 Introduced EntityViewSettingProcessor to allow customizing EntityViewSetting used in Spring Data repositories
- #568, #194 Add support for GROUP BY with PaginatedCriteriaBuilder
- #444 Support @EmbeddedId and @IdClass attributes when using keyset pagination
Take a look into the changelog for a full list of changes and improvements.
A big thank you is going out to Giovanni Lovato for pushing forward the Spring Data integration, testing edge cases with embeddables and improving the Eclipse development experience. Thanks to Jan-Willem Gmelig Meyling we now also have an integration for the upcoming Hibernate 5.4 release!
The last few issues that are planned for the final 1.3.0 release still need some work. We are currently planning to finish everything up by the end of September.
1.3.0-Alpha2
Blaze-Persistence version 1.3.0-Alpha2 adds a few new features but mainly 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 emulation expression on MySQL when it matches the native behavior
We are making good progress on the 1.3 timeline, but a final release will probably take a few more weeks as we preferred fixing bugs that new users encountered over strictly following our plan.
Currently, we assume we can do the 1.3.0 final release by mid August, and we will most likely publish another Alpha release by end of July.
Grab the release while it's hot! We appreciate any feedback, so let us know what you think of this release :)
1.3.0-Alpha1
Here comes version 1.3.0-Alpha1 containing a lot of fixes and 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 to add support for the optimization as well so you can enjoy better performance out of the box when updating Hibernate.
Other than that, we only worked on bug fixes. You can find a list of the fixed issues on GitHub. Note that this release also contains all fixes of 1.2.1.
The next release will be 1.3.0 to be expected by the end of July. We currently do not plan to do any more 1.2 releases unless something critical comes up.
Since 1.3.0-Alpha1 essentially is 1.2.1 with a few additional features, it is safe to update, so please give us feedback on 1.3.0-Alpha1 if you can!
1.2.1
Here comes version 1.2.1 containing a lot of fixes!
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 to add support for the optimization as well so you can enjoy better performance out of the box when updating Hibernate.
Other than that, we only worked on bug fixes. You can find a list of the fixed issues on GitHub.
The next release will be 1.3.0 to be expected by the end of July. We currently do not plan to do any more 1.2 releases unless something critical comes up.
1.2.0
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!
The next 1.2 release will address a few bugs that can currently be worked around and after that, we will work on the 1.3 release.
Since I am on vacation for a month, the 1.2 release will probably be done by the end of June. The 1.3 release which will be named after S.H.I.E.L.D. director Nick Fury and is currently planned to be released by the end of July.
1.2.0-Alpha6
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.
1.2.0-Alpha5
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 pagination support similar to what Spring Data offers
- #536 Support for positional parameters
and lots of bugfixes, most notably
- #417
EntityViewManager
was wrongly passed to@PostCreate
Java 8 default methods in interfaces - #537 Fix illegal Entity-To-Association-Id rewrite
- #518, #519, #521 Fix a few problems that occur when using Hibernate specific features
- #514 Fix in cyclic join detection that happened when using multiple join nodes in ON clause
A big thanks is going out to Jan-Willem Gmelig Meyling for all the tests and fixes he provided in the last few weeks. We very much appreciate the contribution!
We advise you to update to 1.2.0-Alpha5 as soon as possible to prevent getting hit from the Entity-To-Association-Id rewrite issue #537.