# ebean-orm/ebean

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/ebean-orm-ebean).**

1,523 stars · 265 forks · Java · Apache-2.0

## Links

- GitHub: https://github.com/ebean-orm/ebean
- Homepage: https://ebean.io
- awesome-repositories: https://awesome-repositories.com/repository/ebean-orm-ebean.md

## Topics

`cockroachdb` `database` `ebean` `elasticsearch` `h2` `hana` `java` `jdbc` `jpa` `kotlin` `mariadb` `mysql` `oracle` `orm` `postgres` `sql` `sqlite` `sqlserver`

## Description

Ebean is a Java object-relational mapping framework designed to simplify database persistence through automated query generation, schema migration, and transaction management. It uses metadata-driven mapping and bytecode enhancement to bridge the gap between application objects and relational database tables, providing a persistent layer that handles complex data interactions while maintaining consistency across unit-of-work boundaries.

The framework distinguishes itself through its focus on developer productivity and performance optimization. It provides type-safe query builders that generate code at compile time, enabling IDE auto-completion and static validation of database operations. Additionally, it includes integrated support for container-based testing, allowing developers to manage ephemeral database instances and automate schema initialization directly within their test suites.

Beyond core mapping, the project offers a comprehensive suite of tools for data management and observability. This includes automated schema evolution, read-replica routing for connection management, and multi-level caching to reduce database load. It also provides diagnostic capabilities such as query execution plan capture and distributed tracing to assist in performance tuning.

The library supports modern deployment workflows, including ahead-of-time compilation for native images to eliminate runtime reflection overhead. It is distributed as a standard Java library, with documentation and tooling available to support integration into existing build processes.

## Tags

### Data & Databases

- [Object-Relational Mapping](https://awesome-repositories.com/f/data-databases/object-relational-mapping.md) — Translates objects into database tables and automates SQL generation while allowing manual SQL overrides. ([source](https://github.com/ebean-orm/ebean/blob/master/docs/guides/README.md))
- [Database Connection Configurations](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/connection-transaction-management/database-connection-configurations.md) — Defines primary database access by specifying connection credentials, driver settings, and pool limits. ([source](https://github.com/ebean-orm/ebean/blob/master/docs/guides/add-ebean-postgres-database-config.md))
- [Database Schema Migrations](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/database-management/database-schema-migrations.md) — Automates the application of versioned updates to database schemas to maintain structural compatibility with application code. ([source](https://ebean.io/docs/testing/))
- [Database Transaction Management](https://awesome-repositories.com/f/data-databases/database-transaction-management.md) — Maintains a unit of work that tracks object state changes and synchronizes them within defined transaction boundaries.
- [Dynamic SQL Generators](https://awesome-repositories.com/f/data-databases/dynamic-sql-generators.md) — Constructs optimized database queries at runtime by inspecting object graphs and applying necessary filters.
- [Type-Safe Query Construction](https://awesome-repositories.com/f/data-databases/expression-based-data-querying/fluent-query-apis/sql-syntax-tree-construction/fluent-query-construction/type-safe-query-construction.md) — Provides programmatic construction of SQL statements with compile-time type safety and IDE autocompletion.
- [Entity Property Queries](https://awesome-repositories.com/f/data-databases/string-data-structures/property-querying/entity-property-queries.md) — Executes type-safe queries to fetch database records as objects without writing manual SQL. ([source](https://ebean.io/docs/intro/queries/orm-query))
- [Transaction Management](https://awesome-repositories.com/f/data-databases/transaction-management.md) — Synchronizes database operations with transaction boundaries to ensure consistent data handling. ([source](https://github.com/ebean-orm/ebean/tree/master/ebean-spring-txn))
- [Annotation-Driven Mappings](https://awesome-repositories.com/f/data-databases/type-mapping-frameworks/script-to-native-type-mappings/entity-mappings/annotation-driven-mappings.md) — Uses Java annotations to define structural mappings between application objects and relational database tables.
- [Type-Safe Query Builders](https://awesome-repositories.com/f/data-databases/type-safe-query-builders.md) — Generates type-safe query builder classes at compile time to enable static validation and IDE auto-completion.
- [Association Lazy Loading](https://awesome-repositories.com/f/data-databases/association-lazy-loading.md) — Intercepts property access on entity objects to fetch associated data from the database only when requested.
- [Data Projections](https://awesome-repositories.com/f/data-databases/data-projections.md) — Transforms database query results directly into custom data objects to simplify data access. ([source](https://ebean.io/docs/intro/queries/orm-query))
- [Connection Pool Managers](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/connection-transaction-management/connection-pool-managers.md) — Manages database connection lifecycles, including read-write splitting and connection health validation. ([source](https://github.com/ebean-orm/ebean/blob/master/docs/guides/README.md))
- [Database Migration Management](https://awesome-repositories.com/f/data-databases/database-migration-management.md) — Executes pending schema updates upon application startup to ensure structural synchronization. ([source](https://github.com/ebean-orm/ebean/blob/master/docs/guides/add-ebean-postgres-database-config.md))
- [Database Migration Tools](https://awesome-repositories.com/f/data-databases/database-migration-tools.md) — Provides utilities that manage and automate schema versioning and database structure updates.
- [Database Integration Testing](https://awesome-repositories.com/f/data-databases/database-orchestration/test-database-provisioners/database-integration-testing.md) — Enables switching the target database platform for test suites via configuration properties or build parameters. ([source](https://github.com/ebean-orm/ebean/blob/master/howto-test.md))
- [Database Record Auditing](https://awesome-repositories.com/f/data-databases/database-record-management/record-change-monitoring/database-record-auditing.md) — Tracks record changes over time by maintaining audit tables and supporting point-in-time queries against historical data. ([source](https://github.com/ebean-orm/ebean/blob/master/CONFIGURATION.md))
- [Query Optimization](https://awesome-repositories.com/f/data-databases/high-performance-databases/query-optimization.md) — Improves the speed and efficiency of database queries through automated field selection and minimized communication. ([source](https://ebean.io/docs/query/background/autotune))
- [Multi-level Caching](https://awesome-repositories.com/f/data-databases/multi-level-caching.md) — Coordinates between local caches and external stores to optimize data retrieval and reduce database load. ([source](https://github.com/ebean-orm/ebean/blob/master/README.md))
- [Test Data Generators](https://awesome-repositories.com/f/data-databases/population-overrides/database-population-tools/reference-data-population/test-data-generators.md) — Generates entity instances with random values that respect database constraints and complex object relationships for testing. ([source](https://ebean.io/docs/testing/))
- [Raw SQL Execution](https://awesome-repositories.com/f/data-databases/raw-sql-execution.md) — Integrates raw SQL fragments into query clauses or runs arbitrary statements with automatic result mapping. ([source](https://ebean.io/docs/intro/queries/orm-query))
- [Raw SQL Result Mapping](https://awesome-repositories.com/f/data-databases/raw-sql-execution/raw-sql-result-mapping.md) — Executes custom SQL queries and automatically populates the results into plain objects. ([source](https://ebean.io/docs/intro/queries/dto-query))
- [Read Replicas](https://awesome-repositories.com/f/data-databases/read-replicas.md) — Configures secondary read-only data sources to automatically offload read operations from the primary database. ([source](https://github.com/ebean-orm/ebean/blob/master/docs/guides/add-ebean-postgres-database-config.md))

### Software Engineering & Architecture

- [Object-Relational Mapping Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/application-frameworks/general-purpose-frameworks/java-frameworks/object-relational-mapping-frameworks.md) — Provides a persistence layer that maps objects to relational databases while automating query generation and schema migration.

### Development Tools & Productivity

- [Database Administration CLI](https://awesome-repositories.com/f/development-tools-productivity/database-administration-cli.md) — Provides a command-line interface to generate and execute schema scripts for database structure alignment. ([source](https://github.com/ebean-orm/ebean/blob/master/CONFIGURATION.md))
- [Native AOT Compilation](https://awesome-repositories.com/f/development-tools-productivity/native-compilation/native-aot-compilation.md) — Transforms database entity classes into ahead-of-time compiled code to eliminate runtime reflection. ([source](https://github.com/ebean-orm/ebean/blob/master/graalvm-native-image.md))

### DevOps & Infrastructure

- [Test Database Provisioning](https://awesome-repositories.com/f/devops-infrastructure/container-instance-management/database-containers/test-database-provisioning.md) — Automates the lifecycle of ephemeral database containers specifically for development and testing environments. ([source](https://github.com/ebean-orm/ebean/blob/master/docs/guides/add-ebean-postgres-test-container.md))
- [Automated Testing Containers](https://awesome-repositories.com/f/devops-infrastructure/container-orchestration/container-runtimes/runtime-configuration-interfaces/docker-socket-orchestrators/docker-target-configurators/docker-container-deployments/docker-container-execution/automated-testing-containers.md) — Automates the lifecycle of ephemeral database containers to provide isolated environments for integration testing.

### Programming Languages & Runtimes

- [Load-Time Class Transformations](https://awesome-repositories.com/f/programming-languages-runtimes/dynamic-class-creation/class-loading-mechanisms/class-loading-interception/load-time-class-transformations.md) — Modifies compiled class files at build or load time to inject persistence logic and lazy loading capabilities.

### Testing & Quality Assurance

- [Containerized Integration Tests](https://awesome-repositories.com/f/testing-quality-assurance/containerized-integration-tests.md) — Spins up isolated database instances using container technology for consistent integration testing.
- [Isolated Database Tests](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/e2e-integration-testing/end-to-end-testing/isolated-database-tests.md) — Utilizes dedicated, ephemeral database instances for isolated integration testing.
