Software:ActiveJPA

From HandWiki
ActiveJPA
ActiveJPA.png
Developer(s)Versates, Inc
Written inJava
Operating systemCross-platform
PlatformJava Virtual Machine, version 1.7 or earlier
TypeO/R Mapping
LicenseApache License 2.0

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

It is based on the Java Persistence API (JPA), but it does not strictly follow the JSR 338 Specification,[1] 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.[2]

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.

Features and Technologies

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),[3] 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,[4][5] supporting Java 1.7 and new JDBC features.

Transaction Management

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

See also

References

  1. JSR 338: JavaTM Persistence 2.1
  2. Fowler, Martin. Patterns of Enterprise Application Architecture: Active Record
  3. Fowler, Martin; Parsons, Rebecca. Domain Specific Language
  4. JSR 221: JDBCTM 4.0 API Specification
  5. JDBC API Specification 4.2 Maintenance Update

External links