Open Source Persistence Frameworks in Java

40 projects

Apache Cayenne is a Java ORM with CayenneModeler GUI, DB-first flow, transparent transactions, and optional field-level encryption.

Details

Apache OpenJPA is a JPA/Jakarta Persistence implementation. Use as a stand-alone POJO persistence layer or in Java EE and lightweight frameworks.

Details

Butterfly Persistence is a lightweight Java persistence API (under 200 KB) on top of JDBC for reading and writing relational data. It provides connection management, CRUD and batch operations, and DAOs for Map and Object mapping. Object mapping supports automatic, annotation-based, and programmatic styles; supports partial reads and writes.

Details

Castor is a data binding framework for Java: Java–XML binding, Java–SQL persistence. castor. org no longer project; maintained on GitHub.

Details

Ebean is a Java ORM with JPA-style annotations and a simple API. Type-safe queries, partial objects, JSON, caching; optional relational API for raw SQL.

Details

EclipseLink provides JPA, MOXy (JAXB/XML/JSON), DBWS, and NoSQL support. Open-source Java persistence for relational, XML, and REST.

Details

Hibernate ORM is a JPA/Jakarta Persistence implementation for Java: domain model persistence, HQL, associations, inheritance. Also Hibernate Search, Validator, Reactive; part of the Hibernate galaxy.

Details

jOOQ generates Java from your DB schema and provides a fluent, type-safe SQL API. Database-first; supports active records, stored procedures, and multi-dialect SQL. Dual-licensed (Apache for open source).

Details

MyBatis (successor to iBatis SQL Maps) is a Java persistence framework: custom SQL, stored procedures, XML or annotation mapping; minimizes JDBC boilerplate. Maven Central and GitHub.

Details

ORM Lite provides lightweight Java persistence via annotations, abstract DAOs, and QueryBuilder; supports MySQL, Postgres, H2, SQLite, and others.

Details

ORMLite is a lightweight Java ORM: annotations, abstract DAOs, QueryBuilder; supports MySQL, Postgres, H2, Derby, HSQLDB, SQLite, and Android. ISC licensed.

Details

Persist is a minimalist Java ORM/DAO library for high performance and ease of use. It works around java. sql.

Details

Super CSV is a fast, programmer-friendly CSV library for Java. It supports reading and writing POJO beans, Maps, and String lists with configurable cell processors for type conversion and validation. Handles different line breaks and encodings and operates on Reader/Writer streams.

Details

Ujorm is an open-source Java ORM with a key-value style model (Ujo and Key interfaces) and type-safe query API for rapid development. Supports configuration via Java, annotations, or XML; lazy loading; batch SQL; and integration with Spring. No runtime library dependencies.

Details

Apache Torque is a persistence layer that uses a generator to produce database resources (SQL, DAOs, beans) from a schema or XML model, plus a runtime to execute the generated code. Supports multiple databases and is part of the Apache DB project.

Details

Lightweight Model Layer (LML) is a small Java persistence engine using annotations and reflection; zero XML, no dependencies. For standalone and web apps. Original paquitosoft.

Details
PrevaylerInactive

Prevayler is an open-source prevalence layer for Java: business objects are kept in memory and transactions are journaled for recovery. It provides ACID persistence for plain Java objects with minimal configuration. Read operations can be orders of magnitude faster than traditional DBMS access via JDBC when the working set fits in RAM.

Details
BeanKeeperInactive

BeanKeeper is an O/R mapping library: map Java objects to a relational database with a query service. NetMind site gone; code on GitHub.

Details
DaozeroInactive

Daozero implements DAO interfaces at runtime over Spring/iBatis: no DAO implementation code; proxy invokes iBatis mapped statements by convention.

Details

Java Ultra-Lite Persistence (JULP) is a small (~300KB) ORM: inheritance, optimistic locking, many tables per class, container and stand-alone.

Details
JaxorInactive

Jaxor is a code-generating ORM: XML entity definitions drive generation of classes, interfaces, and finders via Velocity templates; for Swing, J2EE, or CLI.

Details
JDBMInactive

JDBM is a transactional embedded persistence engine for Java (GDBM-like): objects and BLOBs, HTree and B+Tree; used by Apache Directory Server.

Details
JGrinderInactive

JGrinder maps Java objects to multiple backends: relational DBs, in-memory storage, flat files; extensible to other stores (e. g. messaging).

Details
jPersistInactive

jPersist is an object-relational persistence API that avoids configuration and annotations by using JDBC; works with any JDBC database and connection type.

Details
O/R BrokerInactive

O/R Broker externalizes SQL into files and maps result sets to arbitrary POJOs (not just JavaBeans); supports inheritance and circular refs. Simple XML config.

Details
ODALInactive

ODAL is a persistence framework with query API, ORM, validation, stored procedures, and code generation; minimal dependencies, fast startup.

Details
PATInactive

PAT (Persistent Applications Toolkit) provides an OO persistence layer for POJOs using AOP (JBossAOP), Prevayler, annotations; integrates with Struts, Tomcat, JBoss.

Details
pBeansInactive

pBeans is a simple, automated Java O/R persistence framework and mapping layer.

Details
QLORInactive

QLOR (Q-LOGIC Object Relational Mapping Framework) is a performant ORM and persistence/query framework for Java. It supports O2O, O2M and M2M mappings, multiple and cascading primary keys, inheritance and multi-inheritance mapping, programmatic and multi-file mappings, optional database encryption, and multi-database support.

Details
SeQuaLiteInactive

SeQuaLite is a lightweight Java data access framework on top of JDBC. It provides CRUD operations, lazy loading, save/delete cascading, paging, and on-the-fly SQL generation using prepared statements. Configuration is via properties and O-R mapping files.

Details
Space4JInactive

Space4J (S4J) is a prevalence implementation for Java: objects are kept in memory and persisted via memory snapshots, transaction logs, and serialization. It offers transparent support for clustering, passivation, and indexing so that objects are available in RAM across restarts without manual save logic.

Details
TJDOInactive

TriActive JDO (TJDO) is an open-source implementation of the JDO specification (JSR 12) for transparent persistence with JDBC-compliant databases. It maps Java classes to tables or SQL views, supports JDOQL, and can auto-create or validate schema. Lightweight and designed for stability and low memory use.

Details
VelosurfInactive

Velosurf is a database mapping layer for Apache Velocity: automatic mapping of tables and relationships without code generation, with transactions, connection pooling, and optional auth and i18n. Can be used as a Velocity tool or as a standalone Java database abstraction layer.

Details
XORMInactive

XORM is an extensible object-relational mapping layer for Java that implements the JDO (JSR 12) API. It allows persistence-capable classes via abstract classes or interfaces with runtime-enhanced get/set methods, without a class-file enhancer. Supports mapping to existing or new schemas.

Details
AmmentosInactive

Ammentos is a lightweight Java persistence framework (JDK5+): annotation-based, no config/mapping files, any JDBC database, multi-device persistence.

Details

Athena Framework is a metadata-based Java ORM: metadata as mapping config, EJBQL, code generation, multi-tenancy for cloud SaaS. Integrates with Struts or Spring. Original athenasource.

Details
OJBInactive

Apache OJB was an O/R mapping tool for transparent Java persistence; supported PersistenceBroker, ODMG, JDO. Retired 2011; archived in Apache Attic.

Details

Persistence4J is a simple Java library for persisting data into relational databases without writing DTOs: create a POJO and save it via the library. Integrates with the Java Transaction API (JTA). Written in Java with a minimum of Java 1.

Details
SimpleORMInactive

SimpleORM is a Java ORM providing a simple implementation of object/relational mapping on top of JDBC with low overhead. It requires no XML configuration. Designed for minimal setup and direct control over database access.

Details
SpeedoInactive

Speedo is an open-source implementation of the JDO (Java Data Objects) 1. 0. 1 specification for RDBMS datastores.

Details