AR for Java; ActiveObjects is an intuitive, pure-Java ORM. AO is designed from the ground up to be extremely simple and easy to use from an API standpoint. AO can be used with either an existing database schema, or it can auto-generate the database schema from the user-specified entity interfaces. ActiveObjects also supports Rails-style database migrations, allowing incremental changes and refactoring of the database schema without data loss.AO can perform better than data mapper ORMs due to its natural use of lazy-loading coupled with sophisticated caching mechanisms. However, performance is not the primary design goal of the project. Rather, the intention is to create an ORM which is powerful and yet extremely natural to use and integrate into your project. This design has lead to certain performance benefits (such as lazy-loading), but on the whole, data mapper ORMs are inherently slightly more performant than AO
Current we support:
Hibernate 3.1
Java Persistence API (sometimes called JPA or EJB3 persistence)
Db4Objects (a lightweight object database)
It works inside a Java EE container, inside a plain Servlet environment or in a purely SE environment such as a desktop application (with obvious limitations--cant use session-per-http-request strategy outside a servlet environment for instance
Neo4j is a graph database. It is an embedded, disk-based, fully transactional Java persistence engine that stores data structured in graphs rather than in tables. A graph (mathematical lingo for a network) is a flexible data structure that allows a more agile and rapid style of development.
You can think of Neo4j as a high-performance graph engine with all the features of a mature and robust database. The programmer works with an object-oriented, flexible network structure rather than with strict and static tables — yet enjoys all the benefits of a fully transactional, enterprise-strength database.
Neo4j is released under a dual free software/commercial license model (which basically means that it’s “open source” but if you’re interested in using it in commercially, then you must buy a commercial license).
Neo4j has been in commercial development for 8 years and in production for over 5 years. It is a mature and robust graph database that provides:
* an intuitive graph-oriented model for data representation. Instead of static and rigid tables, rows and columns, you work with a flexible graph network consisting of nodes, relationships and properties.
* a disk-based, native storage manager completely optimized for storing graph structures for maximum performance and scalability.
* massive scalability. Neo4j can handle graphs of several billion nodes/relationships/properties on a single machine and can be sharded to scale out across multiple machines.
* a powerful traversal framework for high-speed traversals in the node space.
* a small footprint. Neo4j is a single <500k jar with one dependency (the Java Transaction API).
* a simple and convenient object-oriented API.
* optional layers to expose Neo4j as an RDF store, i.e. easily inject / extract data as RDF, express meta model semantics using OWL and query the node space using SPARQL. When it comes to scalability numbers, remember that several triples are usually mapped to a single node. (currently being developed under the umbrella of the OpenMetadir project)
Very interesting approach!
"Apache Empire-db is an Open Source relational data persistence component which allows database vendor independent dynamic query definition as well as safe and simple data retrieval and updating. Compared to most other solutions like e.g. Hibernate, TopLink, iBATIS or JPA implementations, Empire-db takes a considerably different approach, with a special focus on compile-time safety, reduced redundancies and improved developer productivity."
Joda-Time provides a complete quality alternative to the JDK date and time classes. At some point however, many projects need to persist these classes to a database. One popular tool for achieving this is Hibernate.
To ease the integration of Joda-Time and Hibernate, this sub-project was setup. It aims to provide the classes necessary to persist Joda-Time objects.
***No, no, no - needs HibernateDaoSupport! Bad! *** Another promising GenericDao framework: "Generic DAO (a.k.a generic-dao OR gendao) is a Java package which allows a developer to skip writing DAOs for their persistence objects when they are using Spring and JDBC or Hibernate. It is a lightweight ORM package without the loss of control or increase in complexity which is experienced with some of the heavier weight ORM packages.
It is designed to make it easier and faster for developers to write their DAOs without having to rewrite the same old boring save/delete/etc functions over and over for each persistent type but also not having to have implementation dependencies in their DAO interfaces. It also allows for good control over which persistent objects are usable within the DAO and is easy to extend so you can add your own DAO methods. Configuration is easily handled via spring configuration but can also be handled programmatically, however, since the package depends on the spring framework you are best off using it with spring.
Generic DAO allows a developer to write their persistent objects as POJOs with no dependencies. It supports an approach between the anemic domain model (or service/manager model) methodology and the use of a rich domain model (or heavy DDD). The use of simple POJOs as persistent objects makes it easy to swap around storage mechanisms while allowing the developer to use their model objects throughout their application and even expose them for use by other applications.
The package includes functionality for all the basic ORM CRUD type methods along with search methods and batch methods. The JDBC part of the package includes support for caching all the DAO methods (which could also be used with the hibernate part but hibernate has its own caching so you should probably use that). It also includes interceptor points for before and after all read and write methods. For simpler use cases, you can write your POJOs, make them persistent, create your DDL and not have to write a single line of DAO code. The package is built on and depends on the spring framework."
Java toolkit which makes DAO manager creating easier. It produced DAO compatible with JPA specification. It has implemented CRUD operations and some features (active, hidden, default, etc.). It also extends standard API for criteria (like Hibernate ones).
Hattori is a Java framework that simplifies Data Transfer Object population in n-tier web applications by using Java 5 annotations.
The framework is meant to be used at service layer and presentation layer. Given a domain object graph, a DTO object model subset is populated by Hattori which becomes available for modification which will could be later taken to the original domain object graph. Normally, the DTOs are populated at the service layer and sent to the presentation layer for that modification.
The population process is done by evaluating each Data Transfer Object annotated with the ObjectPopulation annotation, identifying operations to be executed on each one using one of these options: implicit rules, annotation rules or your own specific per-object defined java code.