requery
requery is a lightweight SQL-based persistence framework for Java, Kotlin, and Android that uses compile-time code generation instead of reflection. It provides type-safe queries, automatic relationship mapping, and support for multiple databases including MySQL, PostgreSQL, Oracle, and SQLite.
Key facts
Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.
| Field | Value |
|---|---|
| Repository | requery/requery |
| Owner | requery |
| Primary language | Java |
| License | Apache-2.0 — OSI-approved |
| Stars | 3.1k |
| Forks | 240 |
| Open issues | 170 |
| Latest release | 1.6.0 (2019-05-22) |
| Last updated | 2026-02-09 |
| Source | https://github.com/requery/requery |
What requery is
requery is an ORM-like persistence layer using annotation processing to generate entity classes and query attributes at compile time, eliminating runtime reflection overhead. It supports Java 8 streams, RxJava observables, immutable types, and provides DSL-based type-safe queries that map directly to SQL.
Get the requery source
Clone the repository and explore it locally.
git clone https://github.com/requery/requery.gitcd requery# follow the project's README for install & configurationNeed it deployed, integrated, or customized instead? DEV.co ships production installs.
Best use cases
Implementation considerations
- Annotation processor must be correctly configured in your build system (Maven, Gradle, or Kotlin compiler); misconfiguration will prevent entity class generation.
- Compile-time code generation increases build time and requires clean rebuilds when entity annotations change.
- Immutable type support (e.g., @AutoValue) has limitations; check wiki for feature matrix before committing to that pattern.
- RxJava integration is optional; ensure your async strategy aligns with Observable-based or blocking APIs.
- Manual relationship definition (via @OneToMany, @ManyToMany) requires explicit junction table setup; automatic generation exists but complexity scales with relationship cardinality.
When to avoid it — and what to weigh
- You need active vendor support or commercial maintenance — Latest release was May 2019 (1.6.0), though commits show activity through Feb 2026. No evidence of commercial support contracts or SLA backing.
- Your team relies on dynamic schema evolution or schemaless patterns — requery requires compile-time entity definitions and annotation processing; it is not suited for highly dynamic or schema-flexible applications.
- You need extensive ecosystem integration — No clear evidence of Spring Data, Quarkus, Micronaut, or other popular framework integrations. RxJava support exists but broader integration landscape is unclear.
- Your project demands frequent framework updates — Project appears semi-maintained; last formal release in 2019 suggests slower update cadence compared to actively developed alternatives like Hibernate or jOOQ.
License & commercial use
Apache License 2.0 (Apache-2.0) is a permissive open-source license permitting commercial use, modification, and distribution under ASL 2.0 terms.
Apache-2.0 permits commercial use, but you must include the license notice and state material changes. No warranty is provided. Verify compliance with your legal team if bundling requery in a proprietary product.
DEV.co evaluation signals
Editorial assessment — not user reviews. Directional, with an explicit confidence level.
| Signal | Assessment |
|---|---|
| Maintenance | Moderate |
| Documentation | Adequate |
| License clarity | Clear |
| Deployment complexity | Low |
| DEV.co fit | Good |
| Assessment confidence | Medium |
No explicit security audit or vulnerability disclosure process mentioned in the data. SQL generation is compile-time (reducing injection risk), but you must validate that custom type converters and user input handling do not introduce SQL injection. No encryption-at-rest or advanced auth features are described; security depends on your database and JDBC driver configuration.
Alternatives to consider
Hibernate / JPA
Mature, widely adopted, extensive framework support, but heavier runtime overhead and uses reflection/bytecode weaving instead of compile-time generation.
jOOQ
Type-safe SQL DSL with active development and strong enterprise backing; more SQL-centric than requery but heavier licensing model for commercial use.
Room (Android-specific)
Google's official Android persistence library with SQLite integration, strong IDE support, and continuous updates; Android-only, smaller feature set than requery.
Build on requery with DEV.co software developers
Our engineers can assess requery's fit for your architecture, review integration complexity, and recommend alternatives if needed. Contact us for a technical consultation.
Talk to DEV.coRelated open-source tools
Surfaced by semantic similarity across the DEV.co open-source index.
Related on DEV.co
Explore the category and the services that help you build with it.
requery FAQ
Does requery use reflection at runtime?
Can I use requery with Spring Boot?
What databases does requery support?
Is requery still actively developed?
Software developers & web developers for hire
DEV.co helps companies turn open-source tools like requery into production software. Our software development services cover the full lifecycle — architecture, web development, integration, and maintenance — delivered by software developers and web developers who ship. Engage our software development agency to implement or customize it for your open-source databases stack.
Evaluating requery for your project?
Our engineers can assess requery's fit for your architecture, review integration complexity, and recommend alternatives if needed. Contact us for a technical consultation.