Neha Patil (Editor)

ActiveJPA

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Developer(s)
  
Versates, Inc

Written in
  
Java

Type
  
O/R Mapping

Development status
  
Active

Operating system
  
Cross-platform

Platform
  
Java Virtual Machine, version 1.7 or earlier

ActiveJPA is an open-source application framework written in Java for object-relational mapping.

Contents

It is based on the Java Persistence API (JPA), but it does not strictly follow the JSR 338 Specification, as it implements different design patterns and technologies.

Motivation

The framework originated as an effort to add behavior to entities, making them act as active records.

It also implements a different way for proxying persistence operations, transaction management, intercepting operations, validating, logging and caching, using cross-cutting concerns to decouple these responsibilities to retain modularity, encapsulating them into aspects.

Convention Over Configuration

Coding by convention is the best way to decrease the number of decisions made by developers while implementing a technology. ActiveJPA does not require any initial configuration other than a datasource or connection details to the database to have an up and running persistence context.

It supports specific and unconventional aspects of the application as well by using annotations.

DSL Type Safe Querying

By using type safe domain-specific language (DSL), all database queries can be made by using a fluent object-oriented interface.

Aspects

Persistence operations, transaction management, interception, validation, logging and caching are vertically defined by using cross-cutting concerns and encapsulating all these responsibilities into aspects.

It improves performance, scatters and tangles code design and implementation.

Database Access

The database access is abstracted from the JDBC 4.2 Specification, supporting Java 1.7 and new JDBC features.

Transaction Management

ActiveJPA handles JTA nested transactions, global transactions and transactions managed on a JDBC connection.

References

ActiveJPA Wikipedia