By Christian Beikov on 18 October 2016
When I first started working on an early version of what now transformed into a fully fledged framework, I only wanted to be able to reuse queries which seemed to only differ in what they join fetch.
As of JPA 2.1 you could use "Entity-Graphs" to achieve that, but in the meantime I came up with a completely different approach that fixes all the problems you normally encounter when using join fetches and directly working with entities in general.
I won’t go into the details of the problems that arose when working with your entity model directly, but the general suggested solution to these problems is to use DTOs. JPA has some support for DTOs by supporting a so called "constructor expression", but it is limited in many ways so it’s practically only usable for simple cases.
The main goals of the first Blaze-Persistence versions
were to make queries reusable and reduce the pain encountered when working with DTOs. We decided to create a fluent builder API for queries and allow users to separate their query and projection concerns.
With growing knowledge of the JPA providers' internals and use cases from projects, we increasingly thought about adding extensions that the JPA providers themselves did not provide like support for CTEs. The next releases were full of these features that provided unique value to users of Blaze-Persistence.
Now, after about 2 years of work on Blaze-Persistence we finally released 1.2.0.Alpha1 which comes with unique features, that as far as I know, aren’t supported by any other framework in the context of ORM.
Recently I began to advertise Blaze-Persistence a little and apparently it worked as we got new users. Some of these users were particularly helpful as they drove me to write more documentation and also reported bugs.
I was so happy to see Blaze-Persistence getting traction that I decided to do a little less work on features for a while and focus more on documentation and advertising. An upcoming Java user group event was just announced the right moment! I asked the JUG leader if I could present Blaze-Persistence and since he generally agreed, you can expect my presentation there. I will also put the slides on GitHub after the presentation if you can’t attend.