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 |