Patterns for Making Business
Objects Persistent in a Relational Database
Presented
By:
Joseph W. Yoder
joeyoder@joeyoder.com
www.refactory.com
Collaborators
Goals
Overview
Motivation
Problems with OO-RDBMS
Mappings
Illinois Department of
Public Health
“Relational Mappings”
The Way It Used To Be
The Way It Used To Be
The Way It Used To Be
The Way It Used To Be
The Way It Used To Be
The Way It Used To Be
Mapping Objects To RDBMS
Persistence Pattern Language
Mapping Objects To RDBMS
Persistence Pattern Language
The Patterns in Action
Persistence Layer
Persistence Layer
Persistence Layer
Persistence Layer
Persistence Layer
Persistence Layer
Persistence Layer
Persistence Class Diagram
Persistence Object
Persistence Object (an
example)
Persistence Object (an
example)
Persistence Object (an
example)
Persistence Object (an
example)
Persistence Object (an
example)
Persistence Object (an
example)
Persistence Object (an
example)
Persistence Object (an
example)
CRUD (Create Read Update
Delete)
CRUD (example)
CRUD (example)
CRUD (example)
CRUD (example)
SQL Code
SQL Code
SQL Code (example)
SQL Code (example)
SQL Code (Person)
SQL Code (Person)
SQL Code (example)
SQL Code (example)
SQL Code (example)
Attribute Mapping Methods
Attribute Mapping Methods
Attribute Mapping Methods
Attribute Mapping (example)
Attribute Mapping (example)
Type Conversion
Type Conversion
Type Conversion (example)
Type Conversion (example)
Type Conversion (example)
Changed Manager
Changed Manager
Changed Manager
Changed Manager
OID Manager (Key Manager)
OID Manager
OID Manager
OID Manager (example)
OID Manager (example)
OID Manager (example)
OID Manager (example)
OID Manager (example)
Transaction Manager
Transaction Manager
Transaction Manager (an
example)
Transaction Manager (an
example)
Connection Manager
Connection Manager
Connection Manager
Connection Manager (example)
Connection Manager (example)
Table Manager
Table Manager
Table Manager
Table Manager
Table Manager
Mapping Objects To RDBMS
Persistence Pattern Language
Mapping Objects To RDBMS
Persistence Pattern Language
Before PersistentObject
After PersistentObject
Mapping Objects
(the relational side)
One Table for
each Concrete Class
Owned Objects
Knowledge Relationships
Many to Many Relationships
Mapping Objects (meta-architecture)
SQL Code (example)
Mapping Objects (meta-architecture)
Mapping Objects (meta-architecture)
Attribute Map Specification
Attribute Mapping Example
Attribute Map Example
Hot Spots
Typical Values in a Report
Query Objects
Interpreter Pattern
Interpreter Pattern
Instance Hierarchy
QueryObjects
QueryObject Protocol
Creating a QueryObject
QueryExpression Protocol
Observer and QueryObjects
Triggering Changes
QueryHolder
QueryHolder
Arithmetic on ValueModels
Summary
Summary
Related Links
Related Links
That’s All