Jakarta OJB ダウンロード チュートリアル ユーザ ドキュメント システム ドキュメント 開発 日本語訳 (Translations) オリジナル | | Quick Start |
-
The PersistenceBroker allows Java Programmers to store and retrieve Java
Objects in/from JDBC-compliant RDBMS
-
Transparent persistence: Persistent classes don't have to inherit from a
persistent base class or to implement an interface.
-
Persistence by reachability: All Objects associated to a persistent object
by references are made persitent too.
- Mapping support for 1:1, 1:n and m:n
associations.
- Automatic 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
- Classes can be mapped to an arbitrary number of JDBC datasources.
- The Broker uses an internal ObjectCache which
-
maintains object identity (multiple lookups on a given table with same
primary key will return one and the same object !)
- reduces read and write overhead against databases
- prevents circular reads in object read phase
-
is fully garbage collectable through usage of soft references (if
objects are referenced by the ObjectCache but not from any
Client-Application they can be reclaimed by the garbage collector)
-
The CacheMechanism is pluggable and can be easily replaced with
user-defined implementations. There are also some predefined
implementations available.
-
Provides a cache synchronization mechanism to avoid data corruption
when using multiple OJB servers.
-
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 ODMG 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.
- Reusing Prepared Statements, internal connection pooling.
-
Supports BMP Entity Beans (see demo code in package
test.ojb.ejb). The caching technique improve the performance
of EJB applications.
-
Integrates smoothly in controlled environments like EJB containers
(wrt. SecurityManagers and JNDI based Datasources).
-
ODMG compliant API, a Tutorial, and TestCases are included
(see package test.ojb.odmg)
Important notes:
-
OQL is currently not fully implemented.
(Aggregations and Method Invocations)
-
ODMG implicit locking is partly implemented but does
currently not maintain transaction isolation
properly. To achieve safe transaction isolation client application
must use explicit lock acquisition.
-
Scalable client / server architecture that allows to build
massively distributed systems.
-
Distributed Lockmanagement supporting four pessimistic
Transaction Isolation Levels (uncommited or "dirty" reads,
commited reads, repeatable reads, serializable transactions).
-
Optimistic locking support. Users may declare int or long
fields as version attributes or java.sql.Timestamp fields as
timestamp attributes.
- Cache synchronisation for distributed caches.
-
Comes along with fully functional demo applications running against
HSQLDB.
-
Quality assurance taken seriously: More than 120 JUnit-TestCases for
regression tests. JUnit tests integrated into the build scripts.
- Provides Log4J logging facilities.
- 100 %: pure Java, Open Source, Apache License
|
|