ORM Solutions for Java

From Wiki

Jump to: navigation, search

This is a list of ORM-frameworks I would consider when starting a new project today.

The list does not claim to be complete. For an alternative list look here.


Most familiar are the mainstream JPA providers :


There are other, less well known JPA providers:


Frameworks following another paradigm:

Name Facts
Carbonado
  • Persistence abstraction layer for Java applications, providing a relational view to the underlying persistence technology.
  • Entities are defined as interfaces or abstract classes, implementations are generated at runtime.
  • Entities follow the ActiveRecord pattern.
  • UnitOfWork, IdentityMap, DirtyTracking, CascadingPersistence are not supported, OptimisticLocking is supported
  • Querying functionality independent of SQL
  • Supports non-SQL persistence backend (Berkley DB)
  • Relational concepts are not much abstracted (types are object representations of relations, associations are realized with joins based on IDs)
  • Schema-generation is not supported
iBatis
  • Coupling POJO-objects with SQL statements or stored procedures using a XML descriptor
  • All artifacts (Classes, SQL, XML) are created by the developer. There exist supporting generators.
  • Proven and well documented
  • Versions for Java, .NET and Ruby available
Ebean
  • Tries to provide a simpler approach to ORM by not using a PersistenceContext
  • DirtyTracking is realized by the entity itself.
  • Mapping annotations are compatible to JPA
  • Supports an OO-Query-API and its own query-language.
activeobjects
  • Simple persistence solution leaning towards the ActiveRecord pattern.
  • Supports 'no-mapping' approach by relying on conventions.
  • No external dependencies.
  • Easy integration.
  • Advanced schema generation and management via migrations.
  • Relies on SQL for querying.
persist
  • Minimalistic and simple persistence solution leaning towards the ActiveRecord pattern.
  • Supports 'no-mapping' approach by relying on conventions.
  • No external dependencies.
  • Easy integration.
  • Relies on SQL for querying.
  • Features very limited: associations not supported (at least not documented)?
dreamsource-orm
  • TODO !
Apache empire-db
  • TODO !


For the Java-Platform there exist other interesting alternatives:

Personal tools