For an object relational mapping library for Java, the strongest matches are hibernate/hibernate-orm (Hibernate is the industry-standard Java ORM framework that provides), ebean-orm/ebean (Ebean is a comprehensive Java ORM framework that provides) and spring-projects/spring-data-jpa (This framework provides a comprehensive abstraction layer over JPA). mybatis/mybatis-3 and greenrobot/greendao round out the shortlist. Each is ranked by relevance to your query, popularity and recent activity.
We curate open-source GitHub repositories matching “best java orm libraries”. Results are ranked by relevance to your query — pick filters below to narrow, or refine with AI.
Hibernate ORM is a Java object-relational mapper and a full implementation of the Jakarta Persistence API. It serves as a SQL database abstraction layer that translates Java object models into relational database schemas to manage data persistence and lifecycles. The framework distinguishes itself with a multi-tenant data isolation framework for separating customer data within a single database instance. It also features a database schema generator that automatically produces and updates relational structures based on entity mappings. The system covers broad capability areas including transa
Hibernate is the industry-standard Java ORM framework that provides a comprehensive implementation of the Jakarta Persistence API, including all requested features like transaction management, caching, and schema generation.
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 generat
Ebean is a comprehensive Java ORM framework that provides database abstraction, transaction management, lazy loading, and schema migration, serving as a direct alternative to JPA-based solutions.
Simplifies the development of creating a JPA-based data access layer.
This framework provides a comprehensive abstraction layer over JPA, offering robust support for transaction management, caching, and simplified data access patterns that align perfectly with your requirements.
MyBatis is a Java persistence framework that functions as a database query mapper and object-relational mapping tool. It decouples SQL statements from application code, allowing developers to manage database interactions by mapping Java objects to relational database records. The framework provides a centralized approach to SQL query management, enabling the use of either XML configuration files or annotations to define persistence logic. It automates the transformation of database result sets into structured objects, which eliminates the need for manual data conversion and reduces repetitive
MyBatis is a well-established Java persistence framework that provides robust database abstraction and object-relational mapping, though it differs from JPA-compliant frameworks by focusing on SQL-centric mapping rather than full entity-manager automation.
greenDAO is an object-relational mapping library for Android that maps Java objects to SQLite databases. It provides infrastructure for high-performance data persistence by translating data objects into database records and vice versa. The library implements a type-safe query builder for retrieving records across multiple entities using joins and relationship chaining. It also includes a security layer that provides full-disk encryption for the SQLite database to prevent unauthorized access to stored information. The system utilizes compile-time code generation to create mapping classes, avo
greenDAO is a Java-based ORM framework designed specifically for Android and SQLite, providing efficient data persistence and type-safe queries, though it lacks JPA compliance and the broader database abstraction found in enterprise-grade ORMs.
requery - modern SQL based query & persistence for Java / Kotlin / Android
Requery is a modern Java and Kotlin persistence library that provides SQL-based querying and database abstraction, serving as a functional alternative to traditional JPA frameworks for simplifying data persistence.
Speedment is a Stream ORM Java Toolkit and Runtime
Speedment is a Java ORM framework that uses a stream-based approach to database interaction, providing database abstraction and persistence capabilities even though it differs from traditional JPA-compliant implementations.
This project is a Java-based object-relational mapping framework that utilizes the active record pattern to simplify database interactions. It provides a comprehensive data access layer that binds database tables directly to application objects, enabling developers to perform CRUD operations, manage complex entity relationships, and execute queries through a fluent, type-safe interface. Designed for integration with Spring Boot, the framework abstracts database complexities while maintaining support for native compilation and asynchronous execution. The framework distinguishes itself through
This is a Java-based ORM framework that provides an Eloquent-style interface for database interaction and persistence, serving as a direct alternative to JPA-based solutions.
Records is a suite of tools providing a SQL database client library, a transaction manager, and utilities for command line access and data export. It functions as a thin-layer wrapper that executes raw SQL queries against relational databases to retrieve results in simplified data formats. The project includes a command line interface for running database queries and a dedicated data export tool that converts relational query results into CSV, JSON, or Excel files for external analysis. The library covers relational database management through atomic transaction control with commit and rollb
This is a Python-based SQL utility library for raw query execution and data export, which does not provide the Java-based ORM capabilities or JPA compliance required for this category.
Records is a SQL database client designed for executing raw queries and managing result sets through a simplified interface. It provides a parameterized SQL executor to bind values to placeholders, ensuring safe data handling and preventing injection attacks, alongside a database transaction manager for grouping operations into atomic units. The project includes a dedicated command-line interface for running database statements and exporting query results directly to local files. This tooling allows for the conversion of SQL result sets into multiple serialization formats, including CSV, JSON
This is a Python-based SQL database client and query execution tool rather than a Java-based ORM framework, making it a different category of database utility.
This project is a command-line utility designed to manage database schema versioning and automate incremental schema updates. It functions as a version control system for database structures, ensuring consistency across environments by tracking applied migrations in a dedicated metadata table and executing scripts in a sequential, reliable manner. The tool distinguishes itself through a driver-based abstraction layer that supports a wide range of database engines, including various SQL and distributed cloud databases. It provides robust concurrency control through advisory locking, which prev
This is a database schema migration tool rather than an ORM framework, meaning it handles versioning and deployment of database structures but does not provide the object-relational mapping or data persistence features required for Java application development.
Knex is a multi-dialect database client that provides a programmatic SQL query builder, a connection pool manager, and a versioned schema migration tool. It enables programmatic database interaction across multiple SQL engines, including PostgreSQL, MySQL, SQLite3, SQL Server, CockroachDB, and Oracle. The project distinguishes itself through a fluent interface for constructing complex SQL statements and a dedicated framework for database seeding. It utilizes specialized dialects to translate generic query representations into database-specific syntax while maintaining a consistent API across
This is a JavaScript-based SQL query builder and migration tool, which is a different category than a Java-based ORM framework and does not support the required Java-specific persistence standards.
| Repository | Stars | Language | License | Last push |
|---|---|---|---|---|
| hibernate/hibernate-orm | 6.4K | Java | Apache-2.0 | |
| ebean-orm/ebean | 1.5K | Java | Apache-2.0 | |
| spring-projects/spring-data-jpa | 3.3K | Java | Apache-2.0 | |
| mybatis/mybatis-3 | 20.4K | Java | apache-2.0 | |
| greenrobot/greendao | 12.6K | Java | — | |
| requery/requery | 3.1K | Java | Apache-2.0 | |
| speedment/speedment | 2.1K | Java | Apache-2.0 | |
| gaarason/database-all | 1K | Java | MIT | |
| kennethreitz-archive/records | 7.2K | Python | ISC | |
| kennethreitz/records | 7.2K | Python | ISC |