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