The following list of features for persistence frameworks is
mostly adopted from Scott W. Ambler's white paper "The Design
of a Robust Persistence Layer For Relational Databases" and
should help to decide if PriDE matches the individual requirements
in a software development project. Some common issues are not
directly covered by PriDE but by a set of simple patterns.
Legend:
+++ Yes, very good, ++ Yes,
+ Yes, with limmitations, - No,
with exceptions, -- No, --- No,
very week
Feature | Support in PriDE |
JDO (intelliBO) |
Oracle TopLink |
JPA |
Multiple types of persistence mechanisms e.g. flat files, SQL databases, OODBs, ... |
-- | + |
+ |
- |
Encapsulation of persistence mechanisms Except in special situations, programming is completely based on the framework. |
+ | ++ | ++ | ++ |
Multi-object actions Queries, updates and deletions of multiple objects within a single operation |
++ | - | + | ++ |
Transactions | ++ | ++ | ++ | +++ |
Extensibility Extensible for future requirements concerning persistence mechanisms, application architecture, ... |
+ | - | -- | + |
Object IDs Unique identification attributes of objects in the system |
-- (see Patterns) |
+ | + | ++ |
Cursor Sequential processing of (large) result sets |
+++ | ++ | + | -- |
Proxies Simplified representation of objects, limited to characteristics for human and programmatic identification |
- (see Patterns) |
- | + | - |
Records Access to native database records in query results for direct forwarding to reporting tools |
++ | ++ | + | - |
Multiple architectures Support for different architecture and design principles |
++ (see also Patterns) |
+ | - | - |
Multiple database versions and vendors Mostly independent from vendors and database versions to allow rapid updates and database changes |
+ (JDBC) |
++ (JDBC) |
++ (JDBC) |
+++ |
Multiple connections Access to multiple databases via multiple, concurrently available connections |
++ | + | + | ++ |
Native and non-native drivers Support for multiple access strategies, including vendor-specific native drivers |
- (JDBC only) |
-- (JDBC only) |
-- (JDBC only) |
-- |
SQL queries Support for direct SQL queries for special cases |
++ | ++ | ++ | ++ |
Caching Transparent temporary in-memory storage of data for load and store optimization. |
-- (see Patterns) |
++ | ++ | ++ |
Expression builder Helper for programmatic object-oriented assembly of SQL expressions |
+ | ++ | ++ | + |
Expression optimizer Automatic analysis and optimization of expressions, assembled with the expression builder |
-- | + | ++ | + |
Optimistic locking | -- (see Patterns) |
+ | + | ++ |
Joins | + (see Patterns) |
++ | ++ | ++ |
Prepared Statements | + | ++ | + | ++ |
Stored Procedures | ++ | + | + | -- |
Design helper Supporting utilities for the definition of mappings |
+ | ++ | ++ | - |
Simple to use / quick to learn | ++ | + | - | + |
Relationship support Mapping of inter-object relationships, cascading delete, preservation of referential integrity |
-- |
+ |
++ |
++ |
Home | Introduction | Javadoc |