Athena Framework for Java is a full fledged enterprise object-relational mapping (ORM) framework that employs metadata as mapping configuration. It greatly simplifies Java Web application development by removing the requirement of manual mapping and manual database schema updating. In addition to features like Java object persistence, powerful EJBQL querying execution, and comprehensive code generation, Athena has built-in support for multi-tenancy, which enables developers to build cloud applications easily. Athena can be easily integrated with other libraries like Struts or Spring to provide full stacks of service.
Butterfly Persistence is a simple, no nonsense Java persistence API. It aims to provide a simple relational persistence API. Its features include automatic/manual connection management, easier JDBC operations via JDBC templates (Spring style), simple object relational mapping, and map reading for dynamic queries. It provides a simple and pragmatic approach to persistence and will either help you, or get out of the way and let you do the job manually.
DataNucleus AccessPlatform is a standards-compliant Java persistence product. It is fully compliant with the JDO1, JDO2, JDO2.1, JDO2.2, JDO3, JPA1, and JPA2 Java standards, and provides a REST API. It complies with the OGC Simple Feature Spec for persistence of geospatial Java types. It allows access to all popular RDBMS available today, together with the MongoDB, LDAP, NeoDatis, JSON, Excel/ODF spreadsheets, XML, BigTable, HBase, and Neo4j databases.
EJDB is an embedded JSON database engine. It aims to be a fast MongoDB-like NoSQL library that can be embedded into C/C++/Nodejs/Python3/Lua applications. It features collection-level write locking, collection level transactions, string token matching queries, and a Node.js binding.
The Generic Repository (grepo) is a framework for Java which allows you to access (database) repositories in a generic and consistent manner. Using grepo, it is generally no longer required to provide all the boilerplate code which is necessary in order to access (database) repositories from Java. All you have to do is write appropriate database code (queries, procedures, functions, etc.), an appropriately annotated Java interface, and very little Spring configuration.