Blazebit / blaze-persistence

Rich Criteria API for JPA providers
https://persistence.blazebit.com
Apache License 2.0
745 stars 90 forks source link

querydsl - plans for support #1959

Open LucaRitz opened 6 days ago

LucaRitz commented 6 days ago

Just a question about the support of querydsl. It seems that the project is not maintained anymore. The last commit was about six months ago if I have a look at the moment I'm writing this question.

So what plans does blaze-persistence have? Are you going to drop the integration of querydsl?

It is a shame that such a great project like querydsl gets no maintenance anymore. The criteria-API of blaze looks nice but I have to admit that querydsl is much nicer in my opinion. There is someone who is trying to maintain the project but I'm not quite sure if this attempt will succeed.

I just see four ways to go:

I think we have to talk about it because the future of querydsl doesn't look great and it is worth it to save it. Furthermore, we don't want to write software using an unmaintained dependency which you may drop in the future.

Thank you very much

jwgmeligmeyling commented 6 days ago

I maintain both Querydsl and its Blaze-Persistence integration, focusing exclusively on supporting querydsl-jpa. At this time, I am unable to extend support to other modules. For instance, querydsl-sql has become less relevant given the widespread adoption of jOOQ, and the remaining modules have historically seen limited usage. The current versions of Querydsl and its integration are fully compatible with the latest Hibernate 6 and Java LTS releases.

Querydsl is designed as a relatively thin abstraction layer over existing query languages. Its primary purpose is to faithfully represent query language features and expressions. Once this is achieved, the library can be considered functionally complete.

There are differing philosophies regarding the library’s development. While some advocate for frequent updates to maintain relevance, I prefer a more measured approach to ensure stability and reliability. I’ve observed that the Querydsl fork integrates most pull requests without extensive review or design discussions, which doesn’t align with my principles for maintaining high-quality software. As my contributions are made on a voluntary basis, I prioritize stability to avoid introducing breaking changes.

As a user, you have two options: the stable, official branch that receives updates as needed, and a fork that is updated more frequently. The choice depends on your needs, though personally, I have not found the additional features in the fork essential. For more extensive support, both Blaze-Persistence and Querydsl offer paid options including bug fixes and sponsored features.

Looking ahead, Blaze-Persistence is planning to introduce a static metamodel/DSL and continues to actively contribute enhancements back into Hibernate, such as support for CTEs, window functions, and an extended Criteria Builder API. These advancements are making Hibernate increasingly powerful. While Querydsl remains effective and reliable, it may become less essential over time as these alternative solutions evolve.

beikov commented 3 days ago

So what plans does blaze-persistence have? Are you going to drop the integration of querydsl?

As long as QueryDSL stays compatible with the latest Hibernate ORM versions and @jwgmeligmeyling keeps maintaining it as well as the integration, we will keep supporting it.

I proposed extensions to the JPA Criteria API (for JPA 4) that might possibly make QueryDSL obsolete, but it's up to users and maintainers of QueryDSL to decide if it makes sense to continue development/maintenance after that is released.