ObJectRelationalBridge - OJB
Summary
ObJectRelationalBridge (OJB) is an Object/Relational mapping tool that allows transparent persistence for Java Objects against relational databases.
flexibility
OJB supports multiple persistence APIs to provide users with their API of choice:
- A full featured ODMG 3.0 compliant API. (See the ODMG Tutorial for an introduction.)
-
A
JDO compliant API. We currently provide a plugin to the JDO
Reference Implementation (RI). Combining the JDO RI and our plugin
provides a JDO 1.0 compliant o/r solution.
A full JDO implementation is scheduled for OJB 2.0. (See JDO tutorial for an introduction to the JDO programming model.) - An Object Transaction Manager (OTM) layer that contains all features that JDO and ODMG have in common. (See OTM tutorial for details).
-
A low-level
PersistenceBroker API which serves as the OJB persistence
kernel. The OTM-, ODMG- and JDO-implementations are build on
top of this kernel.
This API can also be used directly by applications that don't need full fledged object level transactions (See the Persistence Broker Tutorial for details).
See the FAQ for a detailed view of the OJB layering.
scalability
OJB has been designed for a large range of applications, from embedded systems to rich client application to multi-tier J2EE based architectures.
OJB integrates smoothly into J2EE Application servers. It supports JNDI lookup of datasources. It ships with full JTA and JCA Integration. OJB can be used within JSPs, Servlets and SessionBeans. OJB provides special support for Bean Managed EntityBeans (BMP).
functionality
OJB uses an XML based Object/Relational Mapping. The mapping resides in a dynamic MetaData layer which can be manipulated at runtime through a simple Meta-Object-Protocol (MOP) to change the behaviour of the persistence kernel.
OJB provides several advanced O/R features like an Object Caching, lazy materialization through virtual proxies or a distributed lock-management with configurable Transaction-Isolation Levels. Optimistic and pessimistic Locking is supported.
OJB provides a flexible configuration and plugin mechanism that allows to select from set of predefined components or to implement your own extensions and plugins.
A more complete featurelist can be found here.
Learn more about the OJB design principles in this document.