# Querydsl under OpenFeign is a type-safe query builder with a single maintainer

> OpenFeign/querydsl is a fork of the long dormant Querydsl project, restarted with regular releases and a fluent API for type-safe queries across JPA, SQL, MongoDB and R2DBC. Governance is the weak point: one person reviews pull requests and closes issues.

**OpenFeign/querydsl** — Unified Queries for Java

- Repository: https://github.com/OpenFeign/querydsl
- Website: https://querydsl.com
- Stars: 661 · Forks: 106
- Language: Java
- License: Apache-2.0
- Published: 2026-10-21 · Updated: 2026-10-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/openfeign-querydsl

## Type-safe queries instead of strings and XML

Querydsl is a framework that enables the construction of type-safe SQL-like queries for multiple backends, including JPA, MongoDB and SQL, in Java. The problem it addresses is stated plainly in the project documentation: instead of writing queries as inline strings or externalising them into XML files, they are constructed through a fluent API. The value is compile-time checking of field and path names, which string based queries can never give you, and the ability to build a query programmatically when the shape of the query depends on runtime input. The scope is wide for a query builder. The documentation site carries separate tutorials for querying JPA, querying SQL, querying R2DBC, querying MongoDB, querying collections, Querydsl Spatial, and querying in Kotlin and Scala, which is a good indication that the same query model is meant to sit on top of very different storage engines rather than one of them.

## The fork exists because the original stopped moving

The repository is a fork and says so directly. The stated reason is blunt: Querydsl was at best stale and at worse dead, and by the time the fork was made the last commit was one year old and the last release over two years old. The author says he reached out to the Querydsl team and, in his words, they do not care. Forking under OpenFeign was a way to signal commitment, since that organisation was already stable. The project has since reached regular releases and community patches, and the documentation describes the goal as getting a Querydsl project active, either as a fork or as a wake up call to the original team. That goal includes an explicit endgame: if the original team picks up maintenance again, this fork will most likely be archived. Read that as a roadmap item rather than a promise, because it means the fork you depend on has an explicit condition under which it stops.

## Pull requests are the supported path, issues are not

The contribution policy is the part of this project an adopter should read carefully, because it defines what support you will actually get. If you send a pull request, the maintainer says he will review it, give honest feedback, merge it as soon as he is happy with it, and release it as soon as is practical. If you create an issue, he says he is unlikely to get involved, and the project documentation adds that issues posted as questions will be closed immediately. Free support is offered in the Discussions section and on StackOverflow, and a Slack workspace for contributors is linked as well. The maintainer also states plainly that he dedicates some of his free time to the project, favours people who contribute to it, and that features or bug fixes will mostly happen when they affect his day job. That is a governance model, not a technical limit, and it is the honest answer to the question of who maintains this.

## Building a single module with the matching Maven profile

Releases are published to public Maven repositories, and the Maven Central artifact for the core module is io.github.openfeign.querydsl/querydsl-core. You can also build the sources yourself, and the documented command selects the backend profile you need:

```bash
$ mvn -Pquickbuild,{projectname} clean install
```

The projectname placeholder is one of the Maven profiles, with the documentation naming jpa, sql and mongodb as examples, and also all. The quickbuild profile is what keeps a local build from doing the slow parts. The repository also ships a Maven wrapper, mvnw and mvnw.cmd, so a build does not depend on a system Maven. For a library with this many modules, that matters: querydsl-apt holds the annotation processor, querydsl-tooling and querydsl-libraries hold the generated-code and backend modules, querydsl-bom manages versions across them, and querydsl-examples contains runnable examples.

## Docker Compose starts real databases for the test suite

For running the tests, a Docker Compose setup is provided with several databases. The documentation lists Oracle Express Edition 11g, PostgreSQL 16, MySQL 5.5.34, MariaDB 11.8 and Cubrid 9.2, and the compose file in the repository root is newer than that list. It defines MySQL 8.4 on port 3306, PostgreSQL on 5432 using a PostGIS image, a pgvector build on 5433, MariaDB 11.8 on 3307 and an Oracle free image, plus a small helper service that waits for the slow starting databases to be healthy before the tests run:

```yaml
  mysql:
    image: mysql:8.4
    ports:
      - "3306:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=querydsl
      - MYSQL_USER=querydsl
      - MYSQL_PASSWORD=querydsl
      - MYSQL_DATABASE=querydsl
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uroot", "-pquerydsl"]
      interval: 10s
      timeout: 5s
      retries: 30
```

Starting them is one command, and the documentation notes that all of the databases default ports are forwarded to the host machine:

```bash
$ docker-compose up -d
```

If you want to see the build itself running in a container, the Dockerfile at the repository root shows the shape, using a Mandrel builder image and the Maven wrapper to build the JPA module and then verify a native Quarkus example:

```dockerfile
FROM quay.io/quarkus/ubi-quarkus-mandrel-builder-image:jdk-25 AS build
COPY --chown=quarkus:quarkus . /code/
USER quarkus
WORKDIR /code

RUN ./mvnw -ntp -B install -Pquickbuild -pl :querydsl-jpa -am -T2 -Dtoolchain.skip -Dgcf.skip
RUN ./mvnw verify -Dnative -Pexamples -pl :querydsl-example-jpa-quarkus -Dtoolchain.skip -Dgcf.skip
```

Every database in that file uses the same password and user name, which is fine for a test rig and worth remembering if you ever expose the ports.

## Migrating from an older Querydsl is a documented step

Because the fork continues an existing project, the documentation includes a Migration Guide alongside the tutorials, which is the file to read before you touch an existing codebase. The reference documentation is published at openfeign.github.io/querydsl, and the examples live in the querydsl-examples directory of the repository, with separate example projects for the backends. Release cadence is the strongest argument for the fork over the original: version 7.5 shipped on 2026-07-21, 7.6 on 2026-08-19 and 7.7 on 2026-09-23, and the last push to the repository was on 2026-10-20. The licence is Apache-2.0 with a LICENSE.txt at the root, and the repository also carries a SECURITY.md, a CONTRIBUTING.md and a CHANGELOG.md, so the usual governance files are present even though the process behind them is informal.

## Where Querydsl is the wrong choice

Two situations argue against it. The first is an organisation that requires a project with a support commitment, a security response process with real backing, or more than one person able to merge. This fork is one person's spare time, the issue tracker is not a support channel by policy, and the author says he favours contributors, so a team that cannot contribute is a team that waits. The second is a codebase that needs raw SQL with vendor specific syntax or stored procedure calls, where a query builder adds a layer without adding safety. There is a related cost for teams with two eras of Querydsl in their dependency graph: the fork publishes under the io.github.openfeign.querydsl group coordinates while the original used a different group, so mixing the fork and the original in one application is not a drop in replacement, and the migration guide is the place to work out what that costs you.

## Conclusion

Adopt OpenFeign/querydsl if you want typed query construction across several backends and you are willing to route help through Discussions and Stack Overflow rather than the issue tracker, because issues are closed and pull requests are the supported path. Do not adopt it if your organisation needs a vendor-backed or multi maintainer project, since the fork is run by one person who fixes what affects their own day job and has said the fork may be archived if the original team returns. Before you upgrade, check the migration guide for your current Querydsl version, build the module you need with the matching Maven profile, and confirm the artifact coordinates io.github.openfeign.querydsl/querydsl-core match what your other services already resolve.

## FAQ

### What is the difference between OpenFeign/querydsl and the original Querydsl project?

It is a fork. The documentation says the original project was at best stale and at worse dead, with the last commit a year old and the last release over two years old when the fork was made, and that the fork now has regular releases and community patches. If the original team resumes maintenance, the fork will most likely be archived.

### How do I build Querydsl from source for a single backend?

Run mvn -Pquickbuild,{projectname} clean install, where projectname is one of the Maven profiles such as jpa, sql or mongodb, or all. The repository also ships a Maven wrapper, mvnw, so a local Maven installation is not required.

### How do I report a bug or ask a question in Querydsl?

The maintainer states that pull requests will be reviewed and merged when he is happy with them, but that issues are unlikely to be picked up, and the documentation says questions posted as issues will be closed immediately. Free support is offered in the Discussions section and on StackOverflow.

### Which databases does the Querydsl test setup use?

The Docker Compose setup provided for running tests brings up several databases, with the documentation listing Oracle Express Edition 11g, PostgreSQL 16, MySQL 5.5.34, MariaDB 11.8 and Cubrid 9.2, and the compose file in the repository root using newer images. Start them with docker-compose up -d.

## Sources

- [License: Apache-2.0](https://github.com/OpenFeign/querydsl/blob/master/LICENSE)
- [OpenFeign/querydsl on GitHub](https://github.com/OpenFeign/querydsl)
- [Project website](https://querydsl.com)
- [README](https://github.com/OpenFeign/querydsl/blob/master/README.md)
- [Releases](https://github.com/OpenFeign/querydsl/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/openfeign-querydsl
