ObJectRelationalBridge

Open source Object/Relational mapper that will allow transparent persistence against relational databases
Download

ObJectRelationalBridge Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Freeware
  • Price:
  • FREE
  • Publisher Name:
  • Thomas Mahler
  • Publisher web site:
  • Operating Systems:
  • Mac OS X
  • File Size:
  • 9.7 MB

ObJectRelationalBridge Tags


ObJectRelationalBridge Description

Open source Object/Relational mapper that will allow transparent persistence against relational databases ObJectRelationalBridge (OJB) is an Object/Relational mapping tool that allows transparent persistence for Java Objects against relational databases. FlexibilityOJB supports multiple persistence APIs to provide users with their API of choice:· A PersistenceBroker API which serves as the OJB persistence kernel. The OTM-, ODMG- and JDO-implementations are built 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.)· 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 the 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 the OTM tutorial for details).ScalabilityOJB 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).FunctionalityOJB 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 Object Caching, lazy materialization through virtual proxies and distributed lock-management with configurable Transaction-Isolation levels. Optimistic and pessimistic locking is supported.OJB will provide a flexible configuration and a plugin mechanism that will allow developers to select from a set of predefined components or to implement their own extensions and plugins.NOTE: ObJectRelationalBridge is licensed and provided under the terms of the Apache Software License. Here are some key features of "ObJectRelationalBridge": · Supports both standard- and non-standard APIs: PB API (non-standard), ODMG API (standard), OTM API (non-standard), JDO API (standard) · The PersistenceBroker kernel API and all top-level APIs (ODMG, OTM, JDO) allows Java Programmers to store and retrieve Java Objects in/from (any) JDBC-compliant RDBMS · Transparent persistence: classes does not have to inherit from any OJB base class nor implement a special interface. OJB delivers pure transparent persistence for POJOs. · Scalable architecture that allows to build massively distributed and clustered systems. · Configurable persistence by reachability: All Objects associated to a persistent object by references can made persitent too. · Extremly flexible design with pluggable implementation of most service classes like PersistenceBroker, ObjectCache, SequenceManager, RowReader, ConnectionFactory, ConnectionManager, IndirectionHandler, SQLGenerator, JdbcAccess, ... and so on. · Quality assurance taken seriously: More than 800 JUnit Test Cases for regression tests. JUnit tests are integrated into the build scripts and used as quality assurance for daily development. · Mapping support for 1:1, 1:n and m:n associations. · Configurable collection queries to control loading of relationships. See QueryCustomizer. · Automatic and manual assignment of foreign key values. · The Object / Relational mapping is defined in an XML Repository. The mapping is completely dynamic and can be manipulated at runtime for maximum flexibility · Easy use of multiple databases. · Configurable Lazy Materialization through Proxy support in the PersistenceBroker. The user can implement specific Proxy classes or let OJB generate dynamic Proxies. · Support for Polymorphism and Extents. You can use Interface-types and abstract classes as attribute types in your persistent classes. Queries are also aware of extents: A query against a baseclass or interface will return matches from derived classes, even if they are mapped to different DB-tables · Support for Java Array- and Collection-attributes in persistent classes. The attribute-types can be Arrays, java.util.Collection or may be user defined collections that implement the interface ojb.broker.ManageableCollection. · Sequence-Managing . The SequenceManager is aware of "extents" and maintains uniqueness of ids accross any number of tables. Sequence Numbering can be declared in the mappping repository. · Native Database based Sequence Numbering is also supported. · Reusing Prepared Statements, internal connection pooling. · Integrates smoothly in controlled environments like EJB containers · Full JTA and JCA (in progress) Integration. · Support for prefetched relationships to minimize the number of queries. · ODMG compliant API, a Tutorial, and TestCases are included. · JDO 1.0.1 compliant API (based on jdori, native implementation in progress), a Tutorial, and TestCases are included. · The Lockmanagement supporting four pessimistic Transaction Isolation Levels (uncommited or "dirty" reads, commited reads, repeatable reads, serializable transactions) - distributed locking is possible. · Optimistic locking support. Users may declare int or long fields as version attributes or java.sql.Timestamp fields as timestamp attributes. · Support for persistent object caching. Different caching strategies and distributed caches. · Comes along with fully functional demo applications running against HSQLDB. · Provides Commons-Logging and Log4J logging facilities. · 100%: pure Java, Open Source, Apache License What's New in This Release: · - ODMG ordering problem with circular/bidirectional 1:1 references · - Inheritance (each subclass on separate table) PK problem with · nextval SequenceManager · - JDBC-ODBC bridge problem · - Foreign key violation · - Infinite loop in case of refresh=true and cycles in references · - CallableStatement check doesn't work with maxDB · - MsSQLServer, auto-generated querry error (m:n relation) · - ReferenceMap$Entry keeps growing over period of application usage. · - KeyConstraintViolatedException during store · - ConnectionFactoryManagedImpl may try to use pool · - Getting foreignkeyField's FieldDescriptor is failing if the foreignkey · field is defined in the base class · - Incorrect identity management in SequenceManagerNativeImpl · because of wrong plate-forme settings · - addPathClass in QueryByCriteria does not consider inheritance · - Bug when query against objects mapped on multiple joined tables ("super"-references) · - Connection reset by peer: socket write error · - OJB MtoN implementor failes to work properly with composite M&N keys that have some fields common. · - PlatformMsSQLServerImpl.getLastInsertIdentityQuery creates incorrect SQL statement to pull the identity from the last


ObJectRelationalBridge Related Software