DEV.co
Open-Source Databases · requery

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.

Source: GitHub — github.com/requery/requery
3.1k
GitHub stars
240
Forks
Java
Primary language
Apache-2.0
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositoryrequery/requery
Ownerrequery
Primary languageJava
LicenseApache-2.0 — OSI-approved
Stars3.1k
Forks240
Open issues170
Latest release1.6.0 (2019-05-22)
Last updated2026-02-09
Sourcehttps://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.

Quickstart

Get the requery source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/requery/requery.gitcd requery# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Android applications with local persistence

requery-android specifically targets Android with SQLite support, RecyclerView integration, and minimal runtime overhead—critical for mobile performance constraints.

High-performance Java/Kotlin backends with strict typing

Compile-time code generation eliminates reflection overhead and provides compile-time validation of entity relationships and queries, reducing runtime errors in production systems.

Multi-database applications requiring portable SQL

Supports PostgreSQL, MySQL, Oracle, SQL Server, SQLite, and others with database-agnostic entity definitions and automatic dialect-specific SQL generation (e.g., upserts).

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.

SignalAssessment
MaintenanceModerate
DocumentationAdequate
License clarityClear
Deployment complexityLow
DEV.co fitGood
Assessment confidenceMedium
Security considerations

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.

Software development agency

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.co

Related 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?
No. Annotation processing generates entity classes and query attributes at compile time, avoiding reflection overhead—a key design benefit for performance-critical applications.
Can I use requery with Spring Boot?
Not clearly documented in the provided data. You would likely need custom repository wrappers or data access layer glue; check the wiki or community examples before committing.
What databases does requery support?
PostgreSQL (9.1+), MySQL 5.x, Oracle 12c+, SQL Server 2012+, SQLite, Apache Derby, H2, and HSQLDB. Upsert syntax is automatically generated per database dialect.
Is requery still actively developed?
Recent commits (Feb 2026) suggest ongoing maintenance, but the last formal release was May 2019 (1.6.0). Consult open issues and the roadmap before adopting for mission-critical new projects.

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.