ActiveJPA
Developer(s) | Versates, Inc |
---|---|
Development status | Active |
Written in | Java |
Operating system | Cross-platform |
Platform | Java Virtual Machine, version 1.7 or earlier |
Type | O/R Mapping |
License | Apache License 2.0 |
Website |
activejpa |
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
- ↑ JSR 338: JavaTM Persistence 2.1
- ↑ Fowler, Martin. Patterns of Enterprise Application Architecture: Active Record
- ↑ Fowler, Martin; Parsons, Rebecca. Domain Specific Language
- ↑ JSR 221: JDBCTM 4.0 API Specification
- ↑ JDBC API Specification 4.2 Maintenance Update
External links
- Official website
- activejpa on GitHub
- ActiveJPA Community Community Mailing Group page.
- ActiveJPA Announcements News & Releases Announcement Mailing Group page.
- ActiveJPA Users Group Users Mailing Group page.
- ActiveJPA Development Group Developers Mailing Group page.