1/158
Contents
List of Examples
List of Figures
List of Tables
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documentation
Conventions
Part I TopLink Application Development Overview
1
Introduction to TopLink
1.1
What Is TopLink?
1.2
What Is the Object-Persistence Impedance Mismatch
1.3
TopLink Key Features
1.4
TopLink Application Architectures
2
Introduction to TopLink Application Development
2.1
Introduction to TopLink Application Development
2.1.1
Typical Development Stages
2.1.2
Oracle Development Support
2.2
Designing Your Application with TopLink
2.2.1
How to Use TopLink in Your Application Design
2.2.1.1
Relational Database Usage
2.2.1.2
Object-Relational Data Type Database Usage
2.2.1.3
Oracle XML Database (XDB) Usage
2.2.1.4
Enterprise Information System (EIS) Usage
2.2.1.5
XML Usage
2.2.2
Target Platforms
2.3
Selecting an Architecture with TopLink
2.3.1
Tiers
2.3.1.1
Three Tier
2.3.1.2
Two Tier
2.3.2
Service Layer
2.3.2.1
EJB Session Beans
2.3.2.2
EJB Entity Beans
2.3.2.3
JPA Entities
2.3.2.4
Plain Old Java Objects (POJO)
2.3.3
Data Access
2.3.3.1
Data Type
2.3.3.2
Multiple Data Sources
2.3.3.3
Isolating Data Access
2.3.3.4
Historical Data Access
2.3.4
Caching
2.3.4.1
Cache Type
2.3.4.2
Refreshing
2.3.4.3
Cache Coordination
2.3.5
Locking
2.3.5.1
Optimistic Locking
2.3.5.2
Pessimistic Locking
2.4
Building and Using the Persistence Layer
2.4.1
Implementation Options
2.4.1.1
Using EclipseLink JPA Metatdata, Annotations, and XML
2.4.1.2
Using TopLink Metatdata XML
2.4.1.3
Using TopLink Metadata Java API
2.4.1.4
Using Method and Direct Field Access
2.4.1.5
Using Weaving
2.4.2
Persistent Class Requirements
2.4.3
Persistence Layer Components
2.4.3.1
Mapping Metadata
2.4.3.2
Session
2.4.3.3
Cache
2.4.3.4
Queries and Expressions
2.4.3.5
Transactions
2.4.4
How to Use the Persistence Layer
2.5
Deploying the Application
2.5.1
About Deployments
2.5.2
How to Use TopLink in a Java EE Application
2.6
Optimizing and Customizing the Application
2.7
Troubleshooting the Application
2.8
Persisting Objects
2.8.1
Application Object Model
2.8.2
Data Storage Schema
2.8.3
Primary Keys and Object Identity
2.8.4
Mappings
2.8.5
Foreign Keys and Object Relationships
2.8.6
Inheritance
2.8.7
Concurrency
2.8.8
Caching
2.8.9
Nonintrusive Persistence
2.8.10
Indirection
2.8.11
Mutability
2.9
Working with TopLink Metadata
2.9.1
Advantages of the TopLink Metadata Architecture
2.9.2
Creating Project Metadata
2.9.2.1
Descriptors and Mappings
2.9.2.2
Data Source Login Information
2.9.3
Creating Session Metadata
2.9.4
Deploying Metadata
2.10
Using Weaving
2.10.1
Configuring Dynamic Weaving Using EclipseLink Agent
2.10.1.1
To Configure Dynamic Weaving Using EclipseLink Agent
2.10.2
Configuring Static Weaving
2.10.3
Disabling Weaving Using TopLink Persistence Unit Properties
2.10.4
Packaging a POJO Application for Weaving
2.10.4.1
To Package a POJO Application for Weaving
2.10.5
What You May Need to Know About Weaving and POJO Classes
2.10.6
What You May Need to Know About Weaving and Java EE Application Servers
2.11
Considering Three-Tier Architecture
2.11.1
Example Implementations
2.11.2
Advantages and Disadvantages
2.11.3
Variation Using Remote Sessions
2.11.4
Technical Challenges
2.12
Considering Two-Tier Architecture
2.12.1
Example Implementations
2.12.2
Advantages and Disadvantages
2.12.3
Technical Challenges
2.13
Considering EJB Session Bean Facade Architecture
2.13.1
Example Implementation
2.13.2
Advantages and Disadvantages
2.13.3
What Are Session Beans
2.13.4
Technical Challenges
2.13.5
What Is a Unit of Work Merge
2.14
Considering EJB Entity Beans with CMP Architecture
2.14.1
Example Implementation
2.14.2
Advantages and Disadvantages
2.14.3
Technical Challenges
2.14.3.1
External JDBC Pools
2.14.3.2
JTA/JTS Integration
2.14.3.3
Cache Coordination
2.14.3.4
Maintaining Bidirectional Relationships
2.14.3.5
Managing Dependent Objects
2.14.3.6
Managing Collections of EJBObject Objects
2.15
Considering EJB Entity Beans with BMP Architecture
2.15.1
Example Implementations
2.15.2
Advantages and Disadvantages
2.15.3
Technical Challenges
2.15.3.1
External JDBC Pools
2.15.3.2
JTA/JTS Integration
2.15.3.3
Cache Coordination
2.16
Considering JPA Entity Architecture
2.16.1
Example Implementations
2.16.2
Advantages and Disadvantages
2.17
Considering Web Services Architecture
2.17.1
Example Implementations
2.17.2
Advantages and Disadvantages
2.17.3
Technical Challenges
2.18
Considering EclipseLink Service Data Objects (SDO) Architecture
Part II TopLink Development Tools Overview
3
Introduction to TopLink Development Tools
3.1
Development Environment
3.2
TopLink Run-Time Environment
4
Using Oracle JDeveloper TopLink Editor
4.1
Introduction to Oracle JDeveloper TopLink Editor
4.2
Configuring the Oracle JDeveloper TopLink Editor
4.3
Using the Oracle JDeveloper TopLink Editor
4.3.1
TopLink Project Elements in the Application Navigator
4.3.2
TopLink Editor Tabs in the Editor Window
4.3.3
TopLink Project Elements in the Structure Window
5
Using TopLink Workbench
5.1
Introduction to TopLink Workbench
5.2
Configuring the TopLink Workbench Environment
5.2.1
How to Configure the Language Preference
5.3
Using TopLink Workbench
5.3.1
How to Use Menus
5.3.1.1
Using Menu Bar Menus
5.3.1.2
Using Context Menus
5.3.2
How to Use Toolbars
5.3.2.1
Using Standard Toolbar
5.3.2.2
Using Context Toolbar
5.3.3
How to Use the Navigator
5.3.4
How to Use the Editor
5.3.5
How to Use the Problems Window
5.3.6
How to Use the Online Help
5.4
Using TopLink Workbench Preferences
5.4.1
How to Use General Preferences
5.4.2
How to Use Help Preferences
5.4.3
How to Use Mappings Preferences
5.4.4
How to Use Class Preferences
5.4.5
How to Use EJB Preferences
5.4.6
How to Use Database Preferences
5.4.7
How to Use Sessions Configuration Preferences
5.4.8
How to Use New Names Preferences
5.4.9
How to Use Session Platform Preferences
5.5
Using Databases
5.5.1
How to Use Database Tables in the Navigator Window
5.5.1.1
Logging In and Out of a Database
5.5.1.2
Creating New Tables
5.5.1.3
Importing Tables from a Database
5.5.1.4
Removing Tables
5.5.1.5
Renaming Tables
5.5.1.6
Refreshing Tables from the Database
5.5.2
How to Use Database Tables in the Editor Window
5.5.2.1
Working with Column Properties
5.5.2.2
Setting a Primary Key for Database Tables
5.5.2.3
Creating Table References
5.5.2.4
Creating Field Associations
5.5.3
How to Generate Data from Database Tables
5.5.3.1
Generating SQL Creation Scripts
5.5.3.2
Generating Classes and Descriptors from Database Tables
5.5.3.3
Generating EJB Entity Beans and Descriptors from Database Tables
5.5.3.4
Generating Tables on the Database
5.6
Using XML Schemas
5.6.1
How to Use XML Schemas in the Navigator
5.6.2
How to Use an XML Schema Structure
5.6.3
How to Import an XML Schema
5.6.4
How to Configure an XML Schema Reference
5.6.4.1
How to Configure an XML Schema Reference Using TopLink Workbench
5.6.4.2
How to Configure an XML Schema Reference Using Java
5.6.5
How to Configure XML Schema Namespace
5.6.5.1
How to Configure XML Schema Namespace Using TopLink Workbench
5.6.5.2
How to Configure XML Schema Namespace Using Java
5.7
Using Classes
5.7.1
How to Create Classes
5.7.1.1
How to Create Classes Using TopLink Workbench
5.7.2
How to Configure Classes
5.7.2.1
Configuring Class Information
5.7.2.2
Configuring Class Modifiers
5.7.2.3
Configuring Class Interfaces
5.7.2.4
Adding Attributes
5.7.2.5
Configuring Attribute Modifiers
5.7.2.6
Configuring Attribute Type Declaration
5.7.2.7
Configuring Attribute Accessing Methods
5.7.2.8
Adding Methods
5.7.2.9
Configuring Method Modifiers
5.7.2.10
Configuring Method Return Type
5.7.2.11
Configuring Method Parameters
5.7.3
How to Import and Update Classes
5.7.3.1
Importing and Updating Classes Using TopLink Workbench
5.7.4
How to Manage Nondescriptor Classes
5.7.5
How to Rename Packages
5.7.5.1
Renaming Packages Using TopLink Workbench
5.8
Integrating TopLink Workbench with Apache Ant
5.8.1
How to Configure Ant to Use TopLink Workbench Tasks
5.8.1.1
Creating Library Dependencies
5.8.1.2
Declaring TopLink Workbench Tasks
5.8.2
What You May Need to Know About TopLink Workbench Ant Task API
5.8.3
How to Create TopLink Workbench Ant Tasks
5.8.4
How to Create the mappings.validate Task
5.8.4.1
Using Parameters
5.8.4.2
Specifying Parameters Specified as Nested Elements
5.8.4.3
Examples
5.8.5
How to Create the session.validate Task
5.8.5.1
Using Parameters
5.8.5.2
Specifying Parameters Specified as Nested Elements
5.8.5.3
Examples
5.8.6
How to Create the mappings.export Task
5.8.6.1
Using Parameters
5.8.6.2
Specifying Parameters Specified as Nested Elements
5.8.6.3
Examples
5.8.7
How to Create the classpath Task
5.8.7.1
Using Parameters
5.8.7.2
Specifying Parameters Specified as Nested Elements
5.8.7.3
Examples
5.8.8
How to Create the ignoreerror Task
5.8.8.1
Using Parameters
5.8.8.2
Specifying Parameters Specified as Nested Elements
5.8.8.3
Examples
5.8.9
How to Create the ignoreerrorset Task
5.8.9.1
Using Parameters
5.8.9.2
Specifying Parameters Specified as Nested Elements
5.8.9.3
Examples
5.8.10
How to Create the loginspec Task
5.8.10.1
Using Parameters
5.8.10.2
Specifying Parameters Specified as Nested Elements
5.8.10.3
Examples
6
Using the Schema Manager
6.1
Introduction to the Schema Manager
6.1.1
How to Use Schema Manager Java and Database Type Conversion
6.1.2
How to Use Sequencing
6.2
Creating a Table Creator
6.2.1
How to Use TopLink Workbench During Development
6.2.2
How to Use the Default Table Generator at Run Time
6.2.3
How to Use Java to Create a Table Creator
6.2.3.1
Creating a TableCreator Class
6.2.3.2
Creating a TableDefinition Class
6.2.3.3
Adding Fields to a TableDefinition
6.2.3.4
Defining Sybase and Microsoft SQL Server Native Sequencing
6.3
Creating Tables with a Table Creator
6.4
Creating Database Tables Automatically
6.4.1
Creating Database Tables Automatically in JPA Projects
6.4.2
Creating Database Tables Automatically in EJB CMP Projects
7
Using an Integrated Development Environment
7.1
Configuring TopLink for Oracle JDeveloper
7.1.1
How to Use TopLink Mappings
7.2
Configuring TopLink Workbench with Source Control Management Software
7.2.1
How to Use a Source Control Management System
7.2.2
How to Merge Files
7.2.2.1
Merging Project Files
7.2.2.2
Merging Table, Descriptor, and Class Files
7.2.3
How to Share Project Objects
7.2.4
How to Manage the ejb-jar.xml File
7.2.5
How to Work with Locked Files
Part III TopLink Application Deployment
8
Integrating TopLink with an Application Server
8.1
Introduction to the Application Server Support
8.2
Integrating TopLink with an Application Server
8.2.1
What Are the Software Requirements
8.2.2
How to Configure the XML Parser Platform
8.2.2.1
Configuring XML Parser Platform
8.2.2.2
Creating an XML Parser Platform
8.2.2.3
XML Parser Limitations
8.2.3
How to Set Security Permissions
8.2.4
How to Migrate the Persistence Manager
8.2.5
How to Integrate Clustering
8.3
Integrating TopLink with Oracle WebLogic Server
8.3.1
How to Configure Classpath
8.3.2
How to Integrate JTA
8.3.3
How to Integrate JMX
8.3.4
How to Integrate the Security Manager
8.4
Integrating TopLink with Oracle Containers for Java EE (OC4J)
8.4.1
How to Integrate CMP
8.4.2
How to Migrate OC4J Orion CMP Persistence to OC4J TopLink Persistence
8.4.2.1
What You May Need to Know About Migrating OC4J Orion Persistence to OC4J TopLink Persistence
8.4.2.2
Using the TopLink Migration Tool from TopLink Workbench
8.4.2.3
Using the TopLink Migration Tool from the Command Line
8.4.2.4
Performing Post-Migration Changes
8.4.2.5
Troubleshooting Your Migration
8.4.3
How to Integrate JTA
8.4.4
How to Integrate with Oracle Application Server Manageability and Diagnosability
8.5
Integrating TopLink with IBM WebSphere Application Server
8.5.1
How to Configure Classpath
8.5.1.1
Configuring Classpath for IBM WebSphere Application Server 6.1 and Later
8.5.2
How to Configure Class Loader Order
8.5.3
How to Integrate JTA
8.5.4
How to Configure Clustering on IBM WebSphere Application Server
8.6
Integrating TopLink with Sun Application Server
8.6.1
How to Configure Classpath
8.6.2
How to Integrate JTA
8.7
Integrating TopLink with JBoss Application Server
8.7.1
How to Configure Classpath
8.7.2
How to Integrate JTA
8.7.3
How to Configure JPA Application Deployment to JBoss 4.2 Application Server
8.8
Defining Security Permissions
8.8.1
How to Define Permissions Required by TopLink Features
8.8.1.1
Defining System Properties
8.8.1.2
Loading project.xml or sessions.xml Files
8.8.1.3
Defining Cache Coordination
8.8.1.4
Accessing a Data Source by Port
8.8.1.5
Logging with java.util.logging
8.8.1.6
Granting Permissions for Java EE Application Deployment
8.8.2
How to Define Permissions Required when doPrivileged Is Disabled
8.8.3
How to Disable doPrivileged Operation
8.9
Configuring Miscellaneous EJB CMP Options
8.9.1
How to Configure EJB CMP Setter Parameter Type Checking
8.9.2
How to Configure EJB CMP Unknown Primary Key Class Support
8.9.3
How to Configure EJB CMP Single-Object Finder Return Type Checking
9
Creating TopLink Files for Deployment
9.1
Introduction to the TopLink Deployment File Creation
9.1.1
project.xml File
9.1.1.1
XSD File Format
9.1.1.2
POJO Applications and Project Metadata
9.1.1.3
JPA Applications and Project Metadata
9.1.1.4
CMP Applications and Project Metadata
9.1.1.5
Creating the project.xml File with Oracle JDeveloper
9.1.1.6
Creating the project.xml File with TopLink Workbench
9.1.1.7
Creating project.xml Programatically
9.1.2
sessions.xml File
9.1.2.1
XSD File Format
9.1.2.2
POJO Applications and Session Metadata
9.1.2.3
JPA Applications and Session Metadata
9.1.2.4
CMP Applications and Session Metadata
9.1.3
ejb-jar.xml File
9.1.4
JAVA-EE-CONTAINER
-ejb-jar.xml File
9.1.4.1
Oracle WebLogic Server and the weblogic-ejb-jar.xml File
9.1.4.2
OC4J and the orion-ejb-jar.xml File
9.1.5
toplink-ejb-jar.xml File
9.1.5.1
OC4J and the toplink-ejb-jar.xml File
9.2
Creating Deployment Files for Java Applications
9.3
Creating Deployment Files for JavaServer Pages and Servlet Applications
9.4
Creating Deployment Files for Session Bean Applications
9.4.1
How to Create Deployment Files for EJB 1.
n
and 2.
n
Session Bean Applications
9.4.2
How to Create Deployment Files for EJB 3.0 Session Bean Applications
9.5
Creating Deployment Files for JPA Applications
9.6
Creating Deployment Files for CMP Applications
9.7
Creating Deployment Files for BMP Applications
9.8
Configuring the weblogic-ejb-jar.xml File for Oracle WebLogic Server
9.8.1
What You May Need to Know About Unsupported weblogic-ejb-jar.xml File Tags
9.9
Configuring the orion-ejb-jar.xml File for OC4J
9.9.1
How to Configure persistence-manager Entries
9.9.1.1
Configuring pm-properties
9.9.1.2
Configuring cache-synchronization Properties
9.9.1.3
Configuring default-mapping Properties
10
Packaging a TopLink Application
10.1
Packaging Java Applications
10.2
Packaging JavaServer Pages and Servlet Applications
10.2.1
How to Create the TopLink Domain JAR
10.3
Packaging Session Bean Applications
10.3.1
How to Package an EJB 1.
n
and 2.
n
Session Bean Application
10.3.2
How to Package an EJB 3.0 Session Bean Application
10.3.3
How to Create the TopLink Domain JAR
10.3.4
How to Create the EJB JAR
10.4
Packaging JPA Applications
10.5
Packaging a POJO Application for Weaving
10.6
Packaging CMP Applications
10.6.1
How to Create the EJB JAR
10.7
Packaging BMP Applications
10.7.1
How to Create the TopLink Domain JAR
10.7.2
How to Create EJB JAR File
10.8
Packaging with TopLink Metadata File Resource Paths
11
Deploying a TopLink Application
11.1
Deploying Java Applications
11.2
Deploying JavaServer Pages and Servlets
11.3
Deploying Session Bean Applications
11.4
Deploying JPA Applications
11.5
Deploying CMP Applications
11.5.1
How to Deploy a CMP Application to OC4J
11.6
Deploying BMP Applications
11.7
Performing Hot Deployment of EJB
11.7.1
How to Perform Hot Deployment in a CMP Application
11.7.2
How to Perform Hot Deployment in a POJO Application
Part IV Optimization and Customization of a TopLink Application
12
Optimizing the TopLink Application
12.1
Introduction to Optimization
12.2
Identifying Sources of Application Performance Problems
12.3
Measuring TopLink Performance with the TopLink Profiler
12.3.1
How to Configure the TopLink Performance Profiler
12.3.2
How to Access the TopLink Profiler Results
12.4
Measuring TopLink Performance with the Oracle Dynamic Monitoring System (DMS)
12.4.1
How to Configure the Oracle DMS Profiler
12.4.1.1
Configuring the Oracle DMS Profiler in a TopLink CMP Application on OC4J
12.4.1.2
Configuring the Oracle DMS Profiler in a EclipseLInk JPA Application on OC4J
12.4.2
How to Access Oracle DMS Profiler Data Using JMX
12.4.3
How to Access Oracle DMS Profiler Data Using the DMS Spy Servlet
12.5
Identifying General Performance Optimization
12.6
Optimizing for a Production Environment
12.7
Optimizing Schema
12.7.1
Schema Case 1: Aggregation of Two Tables Into One
12.7.2
Schema Case 2: Splitting One Table Into Many
12.7.3
Schema Case 3: Collapsed Hierarchy
12.7.4
Schema Case 4: Choosing One Out of Many
12.8
Optimizing Mappings and Descriptors
12.9
Optimizing Sessions
12.10
Optimizing Cache
12.11
Optimizing Data Access
12.11.1
How to Optimize JDBC Driver Properties
12.11.2
How to Optimize Data Format
12.11.3
How to Use Batch Writing for Optimization
12.11.4
How to Use Outer-Join Reading with Inherited Subclasses
12.11.5
How to Use Parameterized SQL (Parameter Binding) and Prepared Statement Caching for Optimization
12.12
Optimizing Queries
12.12.1
How to Use Parameterized SQL and Prepared Statement Caching for Optimization
12.12.2
How to Use Named Queries for Optimization
12.12.3
How to Use Batch and Join Reading for Optimization
12.12.4
How to Use Partial Object Queries and Fetch Groups for Optimization
12.12.5
How to Use Read-Only Queries for Optimization
12.12.6
How to Use JDBC Fetch Size for Optimization
12.12.7
How to Use Cursored Streams and Scrollable Cursors for Optimization
12.12.8
How to Use Result Set Pagination for Optimization
12.12.9
Read Optimization Examples
12.12.9.1
Reading Case 1: Displaying Names in a List
12.12.9.2
Reading Case 2: Batch Reading Objects
12.12.9.3
Reading Case 3: Using Complex Custom SQL Queries
12.12.9.4
Reading Case 4: Using View Objects
12.12.9.5
Reading Case 5: Inheritance Subclass Outer-Joining
12.12.10
Write Optimization Examples
12.12.10.1
Writing Case: Batch Writes
12.13
Optimizing the Unit of Work
12.14
Optimizing Using Weaving
12.15
Optimizing the Application Server and Database Optimization
12.16
Optimizing Storage and Retrieval of Binary Data in XML
12.16.1
How to Use an Attachment Marshaller and Unmarshaller
13
Customizing the TopLink Application
13.1
Introduction to Customization
13.2
Creating Custom Data Types
13.3
Using Public Source
13.4
Using the Session Customizer Class
13.5
Using the Descriptor Customizer Class
13.6
Using the Descriptor Amendment Methods
13.7
Using EclipseLink JPA Extensions
Part V Mapping and Configuration Overview
14
Introduction to TopLink Mapping and Configuration
14.1
Mapping and Configuration Concepts
14.1.1
Projects
14.1.2
Descriptors
14.1.3
Mappings
Part VI Projects
15
Introduction to Projects
15.1
TopLink Project Types
15.2
Project Concepts
15.2.1
Project Architecture
15.2.2
Relational and Nonrelational Projects
15.2.3
Persistent and Nonpersistent Projects
15.2.4
Projects and Login
15.2.4.1
POJO Session Role
15.2.4.2
CMP Deployment Role
15.2.4.3
Development Role
15.2.5
Projects and Platforms
15.2.6
Projects and Sequencing
15.2.6.1
Configuring How to Obtain Sequence Values
15.2.6.2
Configuring Where to Write Sequence Values
15.2.7
XML Namespaces
15.3
Project API
15.3.1
Project Inheritance Hierarchy
15.4
XML Namespaces Overview
15.4.1
TopLink Workbench Namespace Resolution
15.4.2
Element and Attribute Form Options
15.4.2.1
Element Form Default Qualified and Attribute Form Default Unqualified
15.4.2.2
Element and Attribute Form Default Unqualified
15.4.2.3
Element and Attribute Form Default Qualified
15.4.3
TopLink Runtime Namespace Resolution
Part VII Descriptors
16
Introduction to Descriptors
16.1
Descriptor Types
16.2
Descriptor Concepts
16.2.1
Descriptor Architecture
16.2.2
Descriptors and Inheritance
16.2.3
Descriptors and CMP and BMP
16.2.3.1
Nondeferred Changes
16.2.3.2
Creating a New Entity Bean and ejbCreate / ejbPostCreate Methods
16.2.3.3
Inheritance
16.2.4
Fetch Groups
16.2.5
Descriptors and Aggregation
16.2.6
Descriptor Customization
16.2.7
Amendment and After-Load Methods
16.2.8
Descriptor Event Manager
16.2.9
Descriptor Query Manager
16.2.10
Descriptors and Sequencing
16.2.11
Descriptors and Locking
16.2.12
Default Root Element
16.3
Descriptors and Inheritance
16.3.1
How to Specify a Class Indicator
16.3.1.1
Using Class Indicator Fields
16.3.1.2
Using Class Extraction Methods
16.3.2
Inheritance and Primary Keys
16.3.3
Single and Multi-Table Inheritance
16.3.4
Aggregate and Composite Descriptors and Inheritance
16.3.5
Inheritance and CMP and BMP
16.4
Descriptors and Locking
16.4.1
Optimistic Version Locking Policies
16.4.2
Optimistic Version Locking Policies and Cascading
16.4.3
Optimistic Locking and Rollbacks
16.4.4
Optimistic Field Locking Policies
16.4.5
Pessimistic Locking Policy
16.4.6
Locking in a Three-Tier Application
16.4.6.1
Optimistic Locking in a Three-Tier Application
16.4.6.2
Pessimistic Locking in a Three-Tier Application
16.5
Descriptor API
16.5.1
Descriptor Inheritance Hierarchy
Part VIII Mappings
17
Introduction to Mappings
17.1
Mapping Types
17.2
Mapping Concepts
17.2.1
Mapping Architecture
17.2.2
Example Mapping
17.2.3
Automatic Mappings
17.2.3.1
JPA Automapping
17.2.3.2
Automapping with Oracle JDeveloper at Development Time
17.2.3.3
Automapping with TopLink Workbench at Development Time
17.2.3.4
Default Mapping in EJB 2.
n
CMP Projects Using OC4J at Run Time
17.2.3.5
JAXB Project Generation at Development Time
17.2.4
Indirection (Lazy Loading)
17.2.4.1
Value Holder Indirection
17.2.4.2
Transparent Indirect Container Indirection
17.2.4.3
Proxy Indirection
17.2.4.4
Weaved Indirection
17.2.4.5
Indirection and JPA
17.2.4.6
Indirection and EJB 2.
n
CMP
17.2.4.7
Indirection, Serialization, and Detachment
17.2.5
Method Accessors and Attribute Accessors
17.2.6
Mapping Converters and Transformers
17.2.6.1
Serialized Object Converter
17.2.6.2
Type Conversion Converter
17.2.6.3
Object Type Converter
17.2.6.4
Simple Type Translator
17.2.6.5
Transformation Mappings
17.2.7
Mappings and XPath
17.2.7.1
XPath by Position
17.2.7.2
XPath by Path and Name
17.2.7.3
XPath by Name
17.2.7.4
Self XPath
17.2.8
Mappings and xsd:list and xsd:union Types
17.2.8.1
Mapping an xsd:union Type
17.2.8.2
Mapping an xsd:list Type
17.2.8.3
Mapping a List of Unions
17.2.8.4
Mapping a Union of Lists
17.2.8.5
Mapping a Union of Unions
17.2.9
Mappings and the jaxb:class Customization
17.2.9.1
all, choice, or sequence Structure
17.2.9.2
group Structure
17.2.9.3
sequence or choice Structure Containing a group
17.2.9.4
group Structure Containing a sequence or choice
17.2.9.5
group Structure Containing a group
17.2.9.6
Limitations of jaxb:class Customization Support
17.2.10
Mappings and JAXB Typesafe Enumerations
17.3
Mapping API
17.4
Relational Mappings
17.5
Object-Relational Data Type Mappings
17.6
XML Mappings
17.7
EIS Mappings
Part IX Relational Projects
18
Introduction to Relational Projects
18.1
Building Relational Projects
18.1.1
How to Build Relational Projects for a Relational Database
18.1.2
How to Build Relational Projects for an Object-Relational Data Type Database
18.2
Sequencing in Relational Projects
18.2.1
Sequencing Configuration Options
18.2.2
Sequencing Types
18.2.2.1
Table Sequencing
18.2.2.2
Unary Table Sequencing
18.2.2.3
Query Sequencing
18.2.2.4
Default Sequencing
18.2.2.5
Native Sequencing with an Oracle Database Platform
18.2.2.6
Native Sequencing with a Non-Oracle Database Platform
18.2.3
Sequencing and Preallocation Size
18.2.4
Sequencing with EJB 2.
n
Entity Beans with Container-Managed Persistence
19
Creating a Relational Project
19.1
Introduction to the Relational Project Creation
19.2
Creating a Project from an Existing Object and Data Model
19.2.1
How to Create a Project from an Existing Object and Data Model Using TopLink Workbench
19.3
Creating a Project from an Existing Object Model
19.3.1
How to Create a Project from an Existing Object Model Using TopLink Workbench
19.4
Creating a Project from an Existing Data Model
19.4.1
How to Create a Project from an Existing Data Model Using TopLink Workbench
19.5
Creating a Project from an OC4J EJB CMP EAR at Deployment Time
19.6
Exporting Project Information
19.6.1
How to Export Project Java Source Using TopLink Workbench
19.6.2
How to Export Table Creator Files Using TopLink Workbench
19.7
Working with the ejb-xml.File
19.7.1
How to Write to the ejb-jar.xml File Using TopLink Workbench
19.7.2
How to Read from the ejb-jar.xml File Using TopLink Workbench
20
Configuring a Relational Project
20.1
Introduction to Relational Project Configuration
20.2
Configuring Relational Database Platform at the Project Level
20.2.1
How to Configure Relational Database Platform at the Project Level Using TopLink Workbench
20.3
Configuring Sequencing at the Project Level
20.3.1
How to Configure Sequencing at the Project Level Using TopLink Workbench
20.3.2
How to Configure Sequencing at the Project Level Using Java
20.4
Configuring Login Information at the Project Level
20.4.1
How to Configure Login Information at the Project Level Using TopLink Workbench
20.5
Configuring Development and Deployment Logins
20.5.1
How to Configure Development and Deployment Logins Using TopLink Workbench
20.6
Logging In to the Database
20.7
Configuring Named Query Parameterized SQL and Statement Caching at the Project Level
20.7.1
How to Configure Named Query Parameterized SQL and Statement Caching at the Project Level Using TopLink Workbench
20.8
Configuring Table Generation Options
20.8.1
How to Configure Table Generation Options Using TopLink Workbench
20.9
Configuring Table Creator Java Source Options
20.9.1
How to Configure Table Creator Java Source Options Using TopLink Workbench
20.10
Configuring Project Java Source Code Options
20.10.1
How to Configure Project Java Source Code Options Using TopLink Workbench
20.11
Configuring Deprecated Direct Mappings
20.11.1
How to Configure Deprecated Direct Mappings Using TopLink Workbench
Part X Relational Descriptors
21
Introduction to Relational Descriptors
21.1
Relational Descriptors
21.2
Aggregate and Composite Descriptors in Relational Projects
21.2.1
Relational Aggregates and Nesting
21.2.2
Relational Aggregates and Inheritance
21.2.3
Relational Aggregates and EJB 2.
n
Entity Beans
21.3
Descriptors and Inheritance in Relational Projects
21.3.1
Inheritance and Primary Keys in Relational Projects
21.3.2
Single- and Multi-Table Inheritance in Relational Projects
21.3.2.1
Single-Table Inheritance
21.3.2.2
Multi-Table Inheritance
22
Creating a Relational Descriptor
22.1
Introduction to Relational Descriptor Creation
22.2
Creating a Relational Descriptor
22.2.1
How to Create a Relational Descriptor Using TopLink Workbench
22.2.1.1
Creating Relational Class Descriptors
22.2.1.2
Creating Relational Aggregate Descriptors
22.2.1.3
Creating Relational Interface Descriptors
22.2.2
How to Create a Relational Descriptor Using Java
23
Configuring a Relational Descriptor
23.1
Introduction to Relational Descriptor Configuration
23.2
Configuring Associated Tables
23.2.1
How to Configure Associated Tables Using TopLink Workbench
23.2.2
How to Configure Associated Tables Using Java
23.3
Configuring Sequencing at the Descriptor Level
23.3.1
How to Configure Sequencing at the Descriptor Level Using TopLink Workbench
23.3.2
How to Configure Sequencing at the Descriptor Level Using Java
23.3.2.1
Configuring a Sequence by Name
23.3.2.2
Configuring the Same Sequence for Multiple Descriptors
23.3.2.3
Configuring the Platform Default Sequence
23.4
Configuring Custom SQL Queries for Basic Persistence Operations
23.4.1
How to Configure Custom SQL Queries for Basic Persistence Operations Using TopLink Workbench
23.4.2
How to Configure Custom SQL Queries for Basic Persistence Operations Using Java
23.5
Configuring Interface Alias
23.5.1
How to Configure Interface Alias Using TopLink Workbench
23.5.2
How to Configure Interface Alias Using Java
23.6
Configuring a Relational Descriptor as a Class or Aggregate Type
23.6.1
How to Configure a Relational Descriptor as a Class or Aggregate Type Using TopLink Workbench
23.6.2
How to Configure a Relational Descriptor as a Class or Aggregate Type Using Java
23.7
Configuring Multitable Information
23.7.1
How to Configure Multitable Information Using TopLink Workbench
23.7.2
How to Configure Multitable Information Using Java
Part XI Object-Relational Data Type Descriptors
24
Introduction to Object-Relational Data Type Descriptors
24.1
Object-Relational Data Type Descriptors
25
Creating an Object-Relational Data Type Descriptor
25.1
Introduction to Object-Relational Data Type Descriptor Creation
25.2
Creating an Object-Relational Data Type Descriptor
25.2.1
How to Create an Object-Relational Data Type Descriptor Using Java
26
Configuring an Object-Relational Data Type Descriptor
26.1
Introduction to Object-Relational Data Type Descriptor Configuration
26.2
Configuring Field Ordering
26.2.1
How to Configure Field Ordering Using Java
Part XII Relational Mappings
27
Introduction to Relational Mappings
27.1
Relational Mapping Types
27.2
Relational Mapping Concepts
27.2.1
Directionality
27.2.2
Converters and Transformers
27.2.2.1
Using a Direct Mapping
27.2.2.2
Using a Converter Mapping
27.2.2.3
Using a Transformation Mapping
27.2.3
Relational Mappings and EJB 2.
n
CMP
27.3
Direct-to-Field Mapping
27.4
Direct-to-XMLType Mapping
27.5
One-to-One Mapping
27.5.1
One-to-One Mappings and EJB 2.
n
CMP
27.6
Variable One-to-One Mapping
27.7
One-to-Many Mapping
27.7.1
One-to-Many Mappings and EJB 2.
n
CMP
27.8
Many-to-Many Mapping
27.8.1
Many-to-Many Mappings and EJB 2.
n
CMP
27.9
Aggregate Collection Mapping
27.9.1
Aggregate Collection Mappings and Inheritance
27.9.2
Aggregate Collection Mappings and EJB
27.9.3
How to Implement Aggregate Collection Mappings
27.10
Direct Collection Mapping
27.11
Direct Map Mapping
27.12
Aggregate Object Mapping
27.12.1
Aggregate Object Mappings with a Single Source Object
27.12.2
Aggregate Object Mappings with Multiple Source Objects
27.12.3
How to Implement an Aggregate Object Relationship Mapping
27.13
Transformation Mapping
28
Configuring a Relational Mapping
28.1
Introduction to Relational Mapping Configuration
28.2
Configuring Common Relational Mapping Options
28.3
Configuring a Database Field
28.3.1
How to Configure a Database Field Using TopLink Workbench
28.4
Configuring Reference Descriptor
28.4.1
How to Configure a Reference Descriptor Using TopLink Workbench
28.5
Configuring Batch Reading
28.5.1
How to Configure Batch Reading Using TopLink Workbench
28.5.2
How to Configure Batch Reading Using Java
28.6
Configuring Query Key Order
28.6.1
How to Configure Query Key Order Using TopLink Workbench
28.6.2
How to Configure Query Key Order Using Java
28.7
Configuring Table and Field References (Foreign and Target Foreign Keys)
28.7.1
How to Configure Table and Field References (Foreign and Target Foreign Keys) Using TopLink Workbench
28.7.2
How to Configure Table and Field References (Foreign and Target Foreign Keys) Using Java
28.8
Configuring Joining at the Mapping Level
28.8.1
How to Configure Joining at the Mapping Level Using TopLink Workbench
28.8.2
How to Configure Joining at the Mapping Level Using Java
29
Configuring a Relational Direct-to-Field Mapping
29.1
Introduction to Relational Direct-to-Field Mapping Configuration
30
Configuring a Relational Direct-to-XMLType Mapping
30.1
Introduction to Relational Direct-to-XMLType Mapping
30.2
Configuring Read Whole Document
30.2.1
How to Configure Read Whole Document Using TopLink Workbench
30.2.2
How to Configure Read Whole Document Using Java
31
Configuring a Relational One-to-One Mapping
31.1
Introduction to Relational One-to-One Mapping Configuration
32
Configuring a Relational Variable One-to-One Mapping
32.1
Introduction to Relational Variable One-to-One Mapping Configuration
32.2
Configuring Class Indicator
32.2.1
How to Configure a Class Indicator Using TopLink Workbench
32.2.2
How to Configure a Class Indicator Using Java
32.3
Configuring Unique Primary Key
32.3.1
How to Configure a Unique Primary Key UsingTopLink Workbench
32.3.2
How to Configure a Unique Primary Key Using Java
32.3.3
What You May Need to Know About Unique Primary Keys
32.4
Configuring Query Key Association
32.4.1
How to Configure a Query Key Association Using TopLink Workbench
32.4.2
How to Configure a Query Key Association Using Java
33
Configuring a Relational One-to-Many Mapping
33.1
Introduction to Relational One-to-Many Mapping Configuration
34
Configuring a Relational Many-to-Many Mapping
34.1
Introduction to Relational Many-to-Many Mapping Configuration
34.2
Configuring a Relation Table
34.2.1
How to Configure a Relation Table Using TopLink Workbench
34.2.2
How to Configure a Relation Table Using Java
35
Configuring a Relational Aggregate Collection Mapping
35.1
Introduction to Relational Aggregate Collection Mapping Configuration
36
Configuring a Relational Direct Collection Mapping
36.1
Introduction to Relational Direct Collection Mapping Configuration
36.2
Configuring Target Table
36.2.1
How to Configure a Target Table Using TopLink Workbench
36.2.2
How to Configure a Target Table Using Java
36.3
Configuring Direct Value Field
36.3.1
How to Configure a Direct Value Field Using TopLink Workbench
36.3.2
How to Configure Direct Value Field Using Java
37
Configuring a Relational Aggregate Object Mapping
37.1
Introduction to Relational Aggregate Object Mapping Configuration
37.2
Configuring Aggregate Fields
37.2.1
How to Configure Aggregate Fields Using TopLink Workbench
37.2.2
How to Configure Aggregate Fields Using Java
37.3
Configuring Allowing Null Values
37.3.1
How to Configure Allowing Null Values Using TopLink Workbench
37.3.2
How to Configure Allowing Null Values Using Java
38
Configuring a Relational Direct Map Mapping
38.1
Introduction to Relational Direct Map Mapping Configuration
38.2
Configuring Direct Value Field
38.2.1
How to Configure Direct Value Fields Using TopLink Workbench
38.2.2
How to Configure Direct Value Fields Using Java
38.3
Configuring Direct Key Field
38.3.1
How to Configure Direct Key Field Using TopLink Workbench
38.3.2
How to Configure Direct Key Field Using Java
38.4
Configuring Key Converters
38.4.1
How to Configure Key Converters Using TopLink Workbench
38.4.2
How to Configure Key Converters Using Java
38.5
Configuring Value Converters
38.5.1
How to Configure Value Converters Using TopLink Workbench
39
Configuring a Relational Transformation Mapping
39.1
Introduction to Relational Transformation Mapping Configuration
Part XIII Object-Relational Data Type Mappings
40
Introduction to Object-Relational Data Type Mappings
40.1
Object-Relational Data Type Mapping Types
40.1.1
Object-Relational Data Type Structure Mapping
40.1.2
Object-Relational Data Type Reference Mapping
40.1.3
Object-Relational Data Type Array Mapping
40.1.4
Object-Relational Data Type Object Array Mapping
40.1.5
Object-Relational Data Type Nested Table Mapping
41
Configuring an Object-Relational Data Type Mapping
41.1
Introduction to Object-Relational Data Type Mapping Configuration
41.2
Configuring Common Object-Relational Data Type Mapping Options
41.3
Configuring Reference Class
41.3.1
How to Configure Reference Class Using Java
41.4
Configuring Attribute Name
41.4.1
How to Configure Attribute Name Using Java
41.5
Configuring Field Name
41.5.1
How to Configure Field Name Using Java
41.6
Configuring Structure Name
41.6.1
How to Configure Structure Name Using Java
42
Configuring an Object-Relational Data Type Structure Mapping
42.1
Introduction to Object-Relational Data Type Structure Mapping Configuration
43
Configuring an Object-Relational Data Type Reference Mapping
43.1
Introduction to Object-Relational Data Type Reference Mapping Configuration
44
Configuring an Object-Relational Data Type Array Mapping
44.1
Introduction to Object-Relational Data Type Array Mapping Configuration
45
Configuring an Object-Relational Data Type Object Array Mapping
45.1
Introduction to Object-Relational Data Type Object Array Mapping Configuration
46
Configuring an Object-Relational Data Type Nested Table Mapping
46.1
Introduction to Object-Relational Data Type Nested Table Mapping Configuration
Part XIV XML Projects
47
Introduction to XML Projects
47.1
XML Project Concepts
47.1.1
TopLink Support for Java Architecture for XML Binding (JAXB)
47.1.1.1
Generating TopLink Project and XML Schema Using JAXB Annotations
47.1.1.2
Working with JAXB-Specific Generated Files
47.1.1.3
Using TopLink JAXB Compiler-Generated Files at Run Time
47.1.2
JAXB Validation
48
Creating an XML Project
48.1
Introduction to XML Project Creation
48.2
Creating an XML Project from an XML Schema
48.2.1
How to Create an XML Project from an XML Schema Using TopLink Workbench
48.2.2
How to Create an XML Project from an XML Schema Using the Command Line
49
Configuring an XML Project
49.1
Introduction to XML Project Configuration
Part XV XML Descriptors
50
Introduction to XML Descriptors
50.1
XML Descriptor Concepts
50.1.1
XML Descriptors and Aggregation
50.1.1.1
Composite Descriptors in XML Projects
51
Creating an XML Descriptor
51.1
Introduction to XML Descriptor Creation
51.2
Creating an XML Descriptor
51.2.1
How to Create an XML Descriptor Using TopLink Workbench
51.2.2
How to Create an XML Descriptor Using Java
52
Configuring an XML Descriptor
52.1
Introduction to XML Descriptor Configuration
52.2
Configuring Schema Context for an XML Descriptor
52.2.1
How to Configure Schema Context for an XML Descriptor Using TopLink Workbench
52.2.1.1
Choosing a Schema Context
52.2.2
How to Configure Schema Context for an XML Descriptor Using Java
52.3
Configuring for Complex Type of anyType
52.3.1
How to Configure Complex Type of anyType Using TopLink Workbench
52.4
Configuring Default Root Element
52.4.1
How to Configure Default Root Element Using TopLink Workbench
52.4.1.1
Choosing a Root Element
52.5
Configuring Document Preservation
52.5.1
How to Configure Document Preservation Using TopLink Workbench
52.5.2
How to Configure Document Preservation Using Java
Part XVI XML Mappings
53
Introduction to XML Mappings
53.1
XML Mapping Types
53.2
XML Mapping Concepts
53.2.1
Mapping to Simple and Complex Types
53.2.2
Mapping Order
53.2.3
XPath Support
53.2.4
xsd:list and xsd:union Support
53.2.5
xs:any and xs:anyType Support
53.2.6
jaxb:class Support
53.2.7
Typesafe Enumeration Support
53.2.8
Mapping Extensions
53.2.9
Key On Source-Based Mapping Support
53.2.10
Substitution Groups
53.2.11
Mixed Content Mapping
53.2.12
XML Adapter
53.3
XML Direct Mapping
53.3.1
Mapping to a Text Node
53.3.1.1
Mapping to a Simple Text Node
53.3.1.2
Mapping to a Text Node in a Simple Sequence
53.3.1.3
Mapping to a Text Node in a Subelement
53.3.1.4
Mapping to a Text Node by Position
53.3.2
Mapping to an Attribute
53.3.3
Mapping to a Specified Schema Type
53.3.4
Mapping to a List Field with an XML Direct Mapping
53.3.5
Mapping to a Union Field with an XML Direct Mapping
53.3.6
Mapping to a Union of Lists with an XML Direct Mapping
53.3.7
Mapping to a Union of Unions with an XML Direct Mapping
53.3.8
Mapping with a Simple Type Translator
53.4
XML Composite Direct Collection Mapping
53.4.1
Mapping to Multiple Text Nodes
53.4.1.1
Mapping to a Simple Sequence
53.4.1.2
Mapping to a Sequence in a Subelement
53.4.2
Mapping to Multiple Attributes
53.4.3
Mapping to a Single Text Node with an XML Composite Direct Collection Mapping
53.4.4
Mapping to a Single Attribute with an XML Composite Direct Collection Mapping
53.4.5
Mapping to a List of Unions with an XML Composite Direct Collection Mapping
53.4.6
Mapping to a Union of Lists with an XML Composite Direct Collection Mapping
53.4.7
Specifying the Content Type of a Collection with an XML Composite Direct Collection Mapping
53.5
XML Composite Object Mapping
53.5.1
Mapping into the Parent Record
53.5.2
Mapping to an Element
53.5.3
Mapping to Different Elements by Element Name
53.5.4
Mapping to Different Elements by Element Position
53.6
XML Composite Collection Mapping
53.7
XML Any Object Mapping
53.8
XML Any Collection Mapping
53.9
XML Transformation Mapping
53.10
XML Object Reference Mapping
53.10.1
Mapping Using a Single Key
53.10.2
Mapping Using a Composite Key
53.10.3
Mapping Using JAXB
53.11
XML Collection Reference Mapping
53.12
XML Binary Data Mapping
53.13
XML Binary Data Collection Mapping
53.14
XML Fragment Mapping
53.15
XML Fragment Collection Mapping
53.16
XML Choice Object Mapping
53.17
XML Choice Collection Mapping
53.18
XML Any Attribute Mapping
54
Configuring an XML Mapping
54.1
Introduction to XML Mapping Configuration
54.2
Configuring Common XML Mapping Options
54.3
Configuring Reference Descriptor
54.3.1
How to Configure a Reference Descriptor Using TopLink Workbench
54.4
Configuring Maps to Wildcard
54.4.1
How to Configure Maps to Wildcard Using TopLink Workbench
54.5
Configuring Source to Target Key Field Association
54.5.1
How to Configure Source to Target Key Field Association Using Java
54.6
Configuring Reference Class
54.6.1
How to Configure Reference Class Using Java
54.7
Configuring the Use of Inline Binary Data
54.7.1
How to Configure the Use of Inline Binary Data Using Java
54.8
Configuring the Use of SwaRef Type
54.8.1
How to Configure the Use of SwaRef Type Using Java
54.9
Configuring the Choice Element
54.9.1
How to Configure the Choice Element Using Java
55
Configuring an XML Direct Mapping
55.1
Introduction to XML Direct Mapping Configuration
56
Configuring an XML Composite Direct Collection Mapping
56.1
Introduction to XML Composite Direct Collection Mapping Configuration
57
Configuring an XML Composite Object Mapping
57.1
Introduction to XML Composite Object Mapping Configuration
58
Configuring an XML Composite Collection Mapping
58.1
Introduction to XML Composite Collection Mapping Configuration
59
Configuring an XML Any Object Mapping
59.1
Introduction to XML Any Object Mapping Configuration
60
Configuring an XML Any Collection Mapping
60.1
Introduction to XML Any Collection Mapping Configuration
61
Configuring an XML Transformation Mapping
61.1
Introduction to XML Transformation Mapping Configuration
62
Configuring an XML Object Reference Mapping
62.1
Introduction to XML Object Reference Mapping
63
Configuring an XML Collection Reference Mapping
63.1
Introduction to XML Collection Reference Mapping
64
Configuring an XML Binary Data Mapping
64.1
Introduction to XML Binary Data Mapping
65
Configuring an XML Binary Data Collection Mapping
65.1
Introduction to XML Binary Data Collection Mapping
66
Configuring an XML Fragment Mapping
66.1
Introduction to XML Fragment Mapping
67
Configuring an XML Fragment Collection Mapping
67.1
Introduction to XML Fragment Collection Mapping
68
Configuring an XML Choice Object Mapping
68.1
Introduction to XML Choice Object Mapping
69
Configuring an XML Choice Collection Mapping
69.1
Introduction to XML Choice Collection Mapping Configuration
70
Configuring an XML Any Attribute Mapping
70.1
Introduction to XML Any Attribute Mapping Configuration
Part XVII EIS Projects
71
Introduction to EIS Projects
71.1
EIS Project Concepts
72
Creating an EIS Project
72.1
Introduction to EIS Project Creation
72.2
Creating an EIS Project with XML Records
72.2.1
How to Create an EIS Project with XML Records Using Oracle JDeveloper
72.2.2
How to Create an EIS Project with XML Records Using TopLink Workbench
72.3
Creating an EIS Project with Indexed or Mapped Records
72.3.1
How to Create an EIS Project with Indexed or Mapped Records Using Java
73
Configuring an EIS Project
73.1
Introduction to EIS Project Configuration
73.2
Configuring EIS Data Source Platform at the Project Level
73.2.1
How to Configure EIS Data Source Platform at the Project Level Using TopLink Workbench
73.3
Configuring EIS Connection Specification Options at the Project Level
73.3.1
How to Configure EIS Connection Specification Options at the Project Level Using TopLink Workbench
Part XVIII EIS Descriptors
74
Introduction to EIS Descriptors
74.1
EIS Descriptor Concepts
74.2
EIS Descriptors and Aggregation
74.2.1
Root and Composite Descriptors in EIS Projects
74.3
EIS Descriptors and Inheritance
74.3.1
Inheritance and Primary Keys in EIS Projects
75
Creating an EIS Descriptor
75.1
Introduction to EIS Descriptor Creation
75.2
Creating an EIS Descriptor
75.2.1
How to Create an EIS Descriptor Using TopLink Workbench
75.2.1.1
EIS Root Descriptors
75.2.1.2
EIS Composite Descriptors
75.2.2
How to Create an EIS Descriptor Using Java
76
Configuring an EIS Descriptor
76.1
Introduction to EIS Descriptor Configuration
76.2
Configuring Schema Context for an EIS Descriptor
76.2.1
How to Configure Schema Context for an EIS Descriptor Using TopLink Workbench
76.2.1.1
Choosing a Schema Context
76.2.2
How to Configure Schema Context for an EIS Descriptor Using Java
76.3
Configuring Default Root Element
76.3.1
How to Configure Default Root Element Using TopLink Workbench
76.3.1.1
Choosing a Root Element
76.3.2
How to Configure Default Root Element Using Java
76.4
Configuring Record Format
76.4.1
How to Configure Record Format Using Java
76.5
Configuring Custom EIS Interactions for Basic Persistence Operations
76.5.1
How to Configure Custom EIS Interactions for Basic Persistence Operations Using TopLink Workbench
76.5.2
How to Configure Custom EIS Interactions for Basic Persistence Operations Using Java
76.6
Configuring an EIS Descriptor as a Root or Composite Type
76.6.1
How to Configure an EIS Descriptor as a Root or Composite Type Using TopLink Workbench
76.6.2
How to Configure an EIS Descriptor as a Root or Composite Type Using Java
Part XIX EIS Mappings
77
Introduction to EIS Mappings
77.1
EIS Mapping Types
77.2
EIS Mapping Concepts
77.2.1
EIS Record Type
77.2.1.1
Indexed Records
77.2.1.2
Mapped Records
77.2.1.3
XML Records
77.2.2
XPath Support
77.2.3
xsd:list and xsd:union Support
77.2.4
jaxb:class Support
77.2.5
Typesafe Enumeration Support
77.2.6
Composite and Reference EIS Mappings
77.2.6.1
Composite EIS Mappings
77.2.6.2
Reference EIS Mappings
77.2.7
EIS Mapping Architecture
77.3
EIS Direct Mapping
77.4
EIS Composite Direct Collection Mapping
77.5
EIS Composite Object Mapping
77.6
EIS Composite Collection Mapping
77.7
EIS One-to-One Mapping
77.7.1
EIS One-to-One Mappings with Key on Source
77.7.2
EIS One-to-One Mappings with Key on Target
77.8
EIS One-to-Many Mapping
77.8.1
EIS One-to-Many Mappings with Key on Source
77.8.2
EIS One-to-Many Mappings with Key on Target
77.9
EIS Transformation Mapping
78
Configuring an EIS Mapping
78.1
Introduction to EIS Mapping Configuration
78.2
Configuring Common EIS Mapping Options
78.3
Configuring Reference Descriptors
78.3.1
How to Configure Reference Descriptors Using TopLink Workbench
78.4
Configuring Selection Interaction
78.4.1
How to Configure Selection Interaction Using TopLink Workbench
79
Configuring an EIS Direct Mapping
79.1
Introduction to EIS Direct Mapping Configuration
80
Configuring an EIS Composite Direct Collection Mapping
80.1
Introduction to EIS Composite Direct Collection Mapping Configuration
81
Configuring an EIS Composite Object Mapping
81.1
Introduction to EIS Composite Object Mapping Configuration
82
Configuring an EIS Composite Collection Mapping
82.1
Introduction to EIS Composite Collection Mapping Configuration
83
Configuring an EIS One-to-One Mapping
83.1
Introduction to EIS One-to-One Mapping Configuration
83.2
Configuring Foreign Key Pairs
83.2.1
How to Configure Foreign Key Pairs Using TopLink Workbench
84
Configuring an EIS One-to-Many Mapping
84.1
Introduction to EIS One-to-Many Mapping Configuration
84.2
Configuring Foreign Key Pairs
84.2.1
How to Configure Foreign Key Pairs Using TopLink Workbench
84.3
Configuring Delete All Interactions
84.3.1
How to Configure Delete All Interactions Using TopLink Workbench
85
Configuring an EIS Transformation Mapping
85.1
Introduction EIS Transformation Mapping Configuration
Part XX Using TopLink
86
Introduction to Persistence Layer
86.1
Persistence Layer Concepts
86.1.1
Sessions
86.1.2
Data Access
86.1.3
Cache
86.1.4
Queries and Expressions
86.1.5
Transactions
Part XXI TopLink Sessions
87
Introduction to TopLink Sessions
87.1
Session Types
87.2
Session Concepts
87.2.1
Session Architecture
87.2.1.1
Object Cache
87.2.1.2
Connection Pools
87.2.1.3
Query Mechanism
87.2.1.4
Java Object Builder
87.2.2
Session Configuration and the sessions.xml File
87.2.3
Session Customization
87.2.4
Acquiring a Session at Run Time with the Session Manager
87.2.5
Managing Session Events with the Session Event Manager
87.2.5.1
Session Event Manager Events
87.2.5.2
Session Event Listeners
87.2.6
Logging
87.2.6.1
Log Types
87.2.6.2
Log Output
87.2.6.3
Log Level
87.2.6.4
Logging SQL
87.2.6.5
Logging Chained Exceptions
87.2.6.6
Logging Inside a Java EE Container
87.2.6.7
Logging Outside of a Java EE Container
87.2.7
Profiler
87.2.7.1
TopLink Profiler
87.2.7.2
Oracle Dynamic Monitoring System (DMS)
87.2.8
Integrity Checker
87.2.9
Exception Handlers
87.2.10
Registering Descriptors
87.2.11
Sessions and CMP
87.2.12
Sessions and Sequencing
87.3
Server and Client Sessions
87.3.1
Three-Tier Architecture Overview
87.3.2
Advantages of the TopLink Three-Tier Architecture
87.3.2.1
Shared Resources
87.3.2.2
Providing Read Access
87.3.2.3
Providing Write Access
87.3.2.4
Security and User Privileges
87.3.2.5
Concurrency
87.3.2.6
Connection Allocation
87.4
Unit of Work Sessions
87.5
Isolated Client Sessions
87.5.1
Isolated Client Sessions and Oracle Virtual Private Database (VPD)
87.5.1.1
VPD with Oracle Database Proxy Authentication
87.5.1.2
VPD Without Oracle Database Proxy Authentication
87.5.1.3
Isolated Client Session Life Cycle
87.5.2
Isolated Client Session Limitations
87.6
Historical Sessions
87.6.1
Historical Session Limitations
87.7
Session Broker and Client Sessions
87.7.1
Session Broker Architecture
87.7.2
Committing a Transaction with a Session Broker
87.7.2.1
Committing a Session with a JTA Driver: Two-Phase Commits
87.7.2.2
Committing a Session Without a JTA Driver: Two-Stage Commits
87.7.3
Session Broker Session Limitations
87.7.3.1
Many-to-Many Join Tables and Direct Collection Tables
87.7.4
Session Broker Alternatives
87.7.4.1
Database Linking
87.7.4.2
Multiple Sessions
87.8
Database Sessions
87.9
Remote Sessions
87.9.1
Architectural Overview
87.9.1.1
Application Layer
87.9.1.2
Transport Layer
87.9.1.3
Server Layer
87.9.2
Remote Session Concepts
87.9.2.1
Securing Remote Session Access
87.9.2.2
Queries
87.9.2.3
Refreshing
87.9.2.4
Indirection
87.9.2.5
Cursored Streams
87.9.2.6
Unit of Work
87.10
Sessions and the Cache
87.10.1
Server and Database Session Cache
87.10.2
Isolated Session Cache
87.10.3
Historical Session Cache
87.11
Session API
88
Creating a Session
88.1
Introduction to the Session Creation
88.2
Creating a Sessions Configuration
88.2.1
How to Create a Sessions Configuration Using TopLink Workbench
88.3
Configuring a Sessions Configuration
88.3.1
How to Configure a Sessions Configuration Using TopLink Workbench
88.4
Creating a Server Session
88.4.1
How to Create a Server Session Using TopLink Workbench
88.4.2
How to Create a Server Session Using Java
88.5
Creating Session Broker and Client Sessions
88.5.1
How to Create a Session Broker and Client Sessions Using TopLink Workbench
88.5.2
How to Create a Session Broker and Client Sessions Using Java
88.6
Creating Database Sessions
88.6.1
How to Create Database Sessions Using TopLink Workbench
88.6.2
How to Create Database Sessions Using Java
88.7
Creating Remote Sessions
88.7.1
How to Create Remote Sessions Using Java
88.7.1.1
Server
88.7.1.2
Client
89
Configuring a Session
89.1
Configuring Common Session Options
89.2
Configuring a Primary Mapping Project
89.2.1
How to Configure a Primary Mapping Project Using TopLink Workbench
89.2.2
How to Configure a Primary Mapping Project Using Java
89.3
Configuring a Session Login
89.4
Configuring Logging
89.4.1
How to Configure Logging Using TopLink Workbench
89.4.2
How to Configure Logging Using Session API in Java
89.4.3
How to Configure Logging Using Oracle Enterprise Manager
89.4.4
How to Configure Logging in a Java EE Container
89.4.5
How to Configure a Session to use the java.util.logging Package
89.4.5.1
logging.properties
89.4.5.2
Formatters
89.4.5.3
Namespace
89.5
Configuring Multiple Mapping Projects
89.5.1
How to Configure Multiple Mapping Projects Using TopLink Workbench
89.5.2
How to Configure Multiple Mapping Projects Using Java
89.6
Configuring a Performance Profiler
89.6.1
How to Configure a Performance Profiler Using TopLink Workbench
89.6.2
How to Configure a Performance Profiler Using Java
89.7
Configuring an Exception Handler
89.7.1
How to Configure an Exception Handler Using TopLink Workbench
89.7.2
How to Configure an Exception Handler Using Java
89.8
Configuring a Session Customizer Class
89.8.1
How to Configure Customizer Class Using TopLink Workbench
89.8.2
How to Configure Customizer Class Using Java
89.9
Configuring the Server Platform
89.9.1
How to Configure the Server Platform Using TopLink Workbench
89.9.2
How to Configure the Server Platform Using Java
89.10
Configuring Session Event Listeners
89.10.1
How to Configure Session Event Listeners Using TopLink Workbench
89.10.2
How to Configure Session Event Listeners Using Java
89.11
Configuring the Integrity Checker
89.11.1
How to Configure the Integrity Checker Using Java
89.12
Configuring Connection Policy
89.12.1
How to Configure Connection Policy Using TopLink Workbench
89.12.2
How to Configure Connection Policy Using Java
89.13
Configuring Named Queries at the Session Level
89.13.1
How to Configure Named Queries at the Session Level Using Java
90
Acquiring and Using Sessions at Run Time
90.1
Introduction to Session Acquisition
90.1.1
Session Manager
90.1.2
Multiple Sessions
90.2
Acquiring the Session Manager
90.3
Acquiring a Session from the Session Manager
90.3.1
How to Load a Session from sessions.xml Using Defaults
90.3.2
How to Load a Session from sessions.xml with an Alternative Class Loader
90.3.3
How to Load a Session from an Alternative Session Configuration File
90.3.4
How to Load a Session Without Logging In
90.3.5
How to Reload and Refresh Session Configuration
90.3.6
How to Refresh a Session when the Class Loader Changes
90.4
Acquiring a Client Session
90.4.1
How to Acquire an Isolated Client Session
90.4.2
How to Acquire a Client Session that Uses Exclusive Connections
90.4.3
How to Acquire a Client Session that Uses Connection Properties
90.4.4
How to Acquire a Client Session that Uses a Named Connection Pool
90.4.5
How to Acquire a Client Session that Does Not Use Lazy Connection Allocation
90.5
Acquiring a Historical Session
90.6
Logging In to a Session
90.7
Using Session API
90.8
Logging Out of a Session
90.9
Storing Sessions in the Session Manager Instance
90.10
Destroying Sessions in the Session Manager Instance
91
Configuring Server Sessions
91.1
Introduction to Server Session Configuration
91.2
Configuring Internal Connection Pools
91.3
Configuring External Connection Pools
92
Configuring Exclusive Isolated Client Sessions for Virtual Private Database
92.1
Introduction to Exclusive Isolated Client Session Configuration
92.2
Using PostAcquireExclusiveConnection Event Handler
92.2.1
How to Use Java
92.3
Using PreReleaseExclusiveConnection Event Handler
92.3.1
How to Use Java
92.4
Using NoRowsModifiedSessionEvent Event Handler
92.4.1
How to Use Java
92.5
Accessing Indirection
93
Configuring Historical Sessions
93.1
Introduction to Historical Session Configuration
93.1.1
How to Configure Historical Sessions Using an Oracle Platform
93.1.2
How to Configure Historical Sessions Using a TopLink HistoryPolicy
94
Configuring Session Broker and Client Sessions
94.1
Introduction to Session Broker and Client Session Configuration
94.2
Removing, Renaming, or Adding Sessions
94.2.1
How to Use TopLink Workbench to Remove, Rename, or Add Sessions
95
Configuring Database Sessions
95.1
Introduction to Database Session Configuration
95.2
Configuring External Connection Pools
Part XXII Data Access
96
Introduction to Data Access
96.1
Data Access Concepts
96.1.1
Externally Managed Transactional Data Sources
96.1.2
Data Source Login Types
96.1.2.1
DatabaseLogin
96.1.2.2
EISLogin
96.1.3
Data Source Platform Types
96.1.3.1
Database Platforms
96.1.3.2
EIS Platforms
96.1.4
Authentication
96.1.4.1
Simple JDBC Authentication
96.1.4.2
Oracle Database Proxy Authentication
96.1.4.3
Auditing
96.1.5
Connections
96.1.6
Connection Pools
96.1.6.1
Internal Connection Pools
96.1.6.2
External Connection Pools
96.1.6.3
Default (Write) and Read Connection Pools
96.1.6.4
Sequence Connection Pools
96.1.6.5
Application-Specific Connection Pools
96.2
Data Access API
96.2.1
Login Inheritance Hierarchy
96.2.2
Platform Inheritance Hierarchy
97
Configuring a Data Source Login
97.1
Configuring Common Data Source Login Options
97.2
Configuring User Name and Password
97.2.1
How to Configure User Name and Password Using TopLink Workbench
97.3
Configuring Password Encryption
97.3.1
How to Configure Password Encryption Using Java
97.4
Configuring External Connection Pooling
97.4.1
How to Configure External Connection Pooling Using TopLink Workbench
97.4.2
How to Configure External Connection Pooling Using Java
97.5
Configuring Properties
97.5.1
How to Configure Properties Using TopLink Workbench
97.5.2
How to Configure Properties Using Java
97.6
Configuring a Default Null Value at the Login Level
97.6.1
How to Configure a Default Null Value at the Login Level Using Java
98
Configuring a Database Login
98.1
Introduction to Database Login Configuration
98.2
Configuring a Relational Database Platform at the Session Level
98.2.1
How to Configure a Relational Database Platform at the Session Level Using TopLink Workbench
98.3
Configuring Database Login Connection Options
98.3.1
How to Configure Database Login Connection Options Using TopLink Workbench
98.4
Configuring Sequencing at the Session Level
98.4.1
How to Configure Sequencing at the Session Level Using TopLink Workbench
98.4.2
How to Configure Sequencing at the Session Level Using Java
98.4.2.1
Using the Platform Default Sequence
98.4.2.2
Configuring Multiple Sequences
98.4.2.3
Configuring Query Sequencing
98.5
Configuring a Table Qualifier
98.5.1
How to Configure a Table Qualifier Using TopLink Workbench
98.5.2
How to Configure a Table Qualifier Using Java
98.6
Configuring JDBC Options
98.6.1
How to Configure JDBC Options Using TopLink Workbench
98.6.2
How to Configure JDBC Options Using Java
98.7
Configuring Advanced Options
98.7.1
How to Configure Advanced Options Using TopLink Workbench
98.7.2
How to Configure Advanced Options Using Java
98.8
Configuring Oracle Database Proxy Authentication
98.8.1
How to Configure Oracle Database Proxy Authentication Using Java
99
Configuring an EIS Login
99.1
Introduction to EIS Login Configuration
99.2
Configuring an EIS Data Source Platform at the Session Level
99.2.1
How to Configure an EIS Data Source Platform at the Session Level Using TopLink Workbench
99.3
Configuring EIS Connection Specification Options at the Session Level
99.3.1
How to Configure EIS Connection Specification Options at the Session Level Using TopLink Workbench
100
Creating an Internal Connection Pool
100.1
Introduction to the Internal Connection Pool Creation
100.2
Creating an Internal Connection Pool
100.2.1
How to Create an Internal Connection Pool Using TopLink Workbench
100.2.2
How to Create an Internal Connection Pool Using Java
101
Configuring an Internal Connection Pool
101.1
Introduction to the Internal Connection Pool Configuration
101.2
Configuring Connection Pool Sizes
101.2.1
How to Configure Connection Pool Size Using TopLink Workbench
101.2.2
How to Configure Connection Pool Size Using Java
101.3
Configuring Properties
101.3.1
How to Configure Properties Using TopLink Workbench
101.3.2
How to Configure Properties Using Java
101.4
Configuring a Nontransactional Read Login
101.4.1
How to Configure Nontransactional Read Login Using TopLink Workbench
101.4.2
How to Configure Nontransactional Read Login Using Java
101.5
Configuring Connection Pool Connection Options
101.5.1
How to Configure Connection Pool Connection Options Using TopLink Workbench
101.6
Configuring Exclusive Read Connections
101.6.1
How to Configure Exclusive Read Connections Using TopLink Workbench
Part L Cache
102
Introduction to Cache
102.1
Cache Architecture
102.1.1
Session Cache
102.1.2
Unit of Work Cache
102.2
Cache Concepts
102.2.1
Cache Type and Object Identity
102.2.1.1
Full Identity Map
102.2.1.2
Weak Identity Map
102.2.1.3
Soft Identity Map
102.2.1.4
Soft Cache Weak Identity Map and Hard Cache Weak Identity Map
102.2.1.5
No Identity Map
102.2.1.6
Guidelines for Configuring the Cache and Identity Maps
102.2.1.7
What You May Need to Know About the Internals of Weak, Soft, and Hard Identity Maps
102.2.2
Querying and the Cache
102.2.3
Handling Stale Data
102.2.3.1
Configuring a Locking Policy
102.2.3.2
Configuring the Cache on a Per-Class Basis
102.2.3.3
Forcing a Cache Refresh when Required on a Per-Query Basis
102.2.3.4
Configuring Cache Invalidation
102.2.3.5
Configuring Cache Coordination
102.2.4
Explicit Query Refreshes
102.2.4.1
Refresh Policy
102.2.4.2
EJB 2.
n
CMP Finders and Refresh Policy
102.2.5
Cache Invalidation
102.2.6
Cache Coordination
102.2.7
Cache Isolation
102.2.8
Cache Locking and Transaction Isolation
102.2.9
Cache Optimization
102.3
Cache Coordination
102.3.1
When to Use Cache Coordination
102.3.2
Coordinated Cache Architecture
102.3.2.1
Session
102.3.2.2
Descriptor
102.3.2.3
Unit of Work
102.3.3
Coordinated Cache Types
102.3.3.1
JMS Coordinated Cache
102.3.3.2
RMI Coordinated Cache
102.3.3.3
CORBA Coordinated Cache
102.3.4
Custom Coordinated Cache
102.4
Cache API
102.4.1
Object Identity API
102.4.2
Cache Refresh API
102.4.3
Cache Invalidation API
102.4.4
Cache Coordination API
103
Configuring a Coordinated Cache
103.1
Configuring Common Coordinated Cache Options
103.2
Configuring the Synchronous Change Propagation Mode
103.2.1
How to Configure the Synchronous Change Propagation Mode Using TopLink Workbench
103.2.2
How to Configure the Synchronous Change Propagation Mode Using Java
103.3
Configuring a Service Channel
103.3.1
How to Configure a Service Channel Using TopLink Workbench
103.3.2
How to Configure a Service Channel Using Java
103.4
Configuring a Multicast Group Address
103.4.1
How to Configure a Multicast Group Address Using TopLink Workbench
103.4.2
How to Configure a Multicast Group Address Using Java
103.5
Configuring a Multicast Port
103.5.1
How to Configure a Multicast Port Using TopLink Workbench
103.5.2
How to Configure a Multicast Port Using Java
103.6
Configuring a Naming Service Type
103.7
Configuring JNDI Naming Service Information
103.7.1
How to Configure JNDI Naming Service Information Using TopLink Workbench
103.7.2
How to Configure JNDI Naming Service Information Using Java
103.8
Configuring RMI Registry Naming Service Information
103.8.1
How to Configure RMI Registry Naming Service Information Using TopLink Workbench
103.8.2
How to Configure RMI Registry Naming Service Information Using Java
103.9
Configuring an Announcement Delay
103.9.1
How to Configure an Announcement Delay Using TopLink Workbench
103.9.2
How to Configure an Announcement Delay Using Java
103.10
Configuring Connection Handling
103.10.1
How to Configure Connection Handling Using TopLink Workbench
103.10.2
How to Configure Connection Handling Using Java
103.11
Configuring Context Properties
103.11.1
How to Configure Context Properties Using TopLink Workbench
103.11.2
How to Configure Context Properties Using Java
103.12
Configuring a Packet Time-to-Live
103.12.1
How to Configure a Packet Time-to-Live Using TopLink Workbench
103.12.2
How to Configure a Packet Time-to-Live Using Java
104
Configuring a JMS Coordinated Cache
104.1
Introduction to JMS Coordinated Cache Configuration
104.2
Configuring a Topic Name
104.2.1
How to Configure a Topic Name Using TopLink Workbench
104.2.2
How to Configure a Topic Name Java
104.3
Configuring a Topic Connection Factory Name
104.3.1
How to Configure a Topic Connection Factory Name Using TopLink Workbench
104.3.2
How to Configure a Topic Connection Factory Name Using Java
104.4
Configuring a Topic Host URL
104.4.1
How to Configure a Topic Host URL Using TopLink Workbench
104.4.2
How to Configure a Topic Host URL Using Java
104.5
Configuring Connection Handling
104.5.1
How to Configure Connection Handling Using TopLink Workbench
104.5.2
How to Configure Connection Handling Using Java
105
Configuring an RMI Coordinated Cache
105.1
Introduction to RMI Coordinated Cache Configuration
106
Configuring a CORBA Coordinated Cache
106.1
Introduction to CORBA Coordinated Cache Configuration
107
Configuring a Custom Coordinated Cache
107.1
Introduction to Custom Coordinated Cache Configuration
107.2
Configuring Transport Class
107.2.1
How to Configure Transport Class Using TopLink Workbench
107.2.2
How to Configure Transport Class Using Java
Part XXIV Queries
108
Introduction to TopLink Queries
108.1
Query Types
108.2
Query Concepts
108.2.1
Call
108.2.2
DatabaseQuery
108.2.3
Data-Level and Object-Level Queries
108.2.4
Summary Queries
108.2.5
Descriptor Query Manager
108.2.6
TopLink Expressions
108.2.7
Query Keys
108.2.8
Query Languages
108.2.8.1
SQL Queries
108.2.8.2
EJB QL Queries
108.2.8.3
JP QL Queries
108.2.8.4
XML Queries
108.2.8.5
EIS Interactions
108.2.8.6
Query-by-Example
108.3
Building Queries
108.4
Executing Queries
108.5
Handling Query Results
108.5.1
Collection Query Results
108.5.2
Report Query Results
108.5.3
Stream and Cursor Query Results
108.6
Session Queries
108.6.1
Read-Object Session Queries
108.6.2
Create, Update, and Delete Object Session Queries
108.7
Database Queries
108.7.1
Object-Level Read Query
108.7.1.1
ReadObjectQuery
108.7.1.2
ReadAllQuery
108.7.1.3
Partial Object Queries
108.7.1.4
Read-Only Query
108.7.1.5
Join Reading and Object-Level Read Queries
108.7.1.6
Fetch Groups and Object-Level Read Queries
108.7.2
Data-Level Read Query
108.7.2.1
DataReadQuery
108.7.2.2
DirectReadQuery
108.7.2.3
ValueReadQuery
108.7.3
Object-Level Modify Query
108.7.3.1
WriteObjectQuery
108.7.3.2
UpdateObjectQuery
108.7.3.3
InsertObjectQuery
108.7.3.4
DeleteObjectQuery
108.7.3.5
UpdateAllQuery
108.7.3.6
DeleteAllQuery
108.7.3.7
Object-Level Modify Queries and Privately Owned Parts
108.7.4
Data-Level Modify Query
108.7.5
Report Query
108.8
Named Queries
108.9
Call Queries
108.9.1
SQL Calls
108.9.1.1
SQLCall
108.9.1.2
StoredProcedureCall
108.9.1.3
StoredFunctionCall
108.9.2
EJB QL Calls
108.9.3
Enterprise Information System (EIS) Interactions
108.9.3.1
IndexedInteraction
108.9.3.2
MappedInteraction
108.9.3.3
XMLInteraction
108.9.3.4
XQueryInteraction
108.9.3.5
QueryStringInteraction
108.10
Redirect Queries
108.11
Historical Queries
108.11.1
Using an ObjectLevelReadQuery with an AsOfClause
108.11.2
Using an ObjectLevelReadQuery with Expression Operator asOf
108.11.3
Using an ObjectLevelReadQuery in a Historical Session
108.12
Interface and Inheritance Queries
108.13
Descriptor Query Manager Queries
108.13.1
How to Configure Named Queries
108.13.2
How to Configure Default Query Implementations
108.13.3
How to Configure Additional Join Expressions
108.14
Oracle Extensions
108.14.1
Hints
108.14.2
Hierarchical Queries
108.14.3
Flashback Queries
108.14.4
Stored Functions
108.15
EJB 2.
n
CMP Finders
108.15.1
Predefined Finders
108.15.1.1
Predefined CMP Finders
108.15.1.2
Predefined BMP Finders
108.15.2
Default Finders
108.15.3
Call Finders
108.15.4
DatabaseQuery Finders
108.15.5
Named Query Finders
108.15.6
Primary Key Finders
108.15.7
Expression Finders
108.15.8
EJB QL Finders
108.15.9
SQL Finders
108.15.10
Redirect Finders
108.15.11
The ejbSelect Method
108.16
Queries and the Cache
108.16.1
How to Configure the Cache
108.16.2
How to Use In-Memory Queries
108.16.2.1
Configuring Cache Usage for In-Memory Queries
108.16.2.2
Expression Options for In-Memory Queries
108.16.2.3
Handling Exceptions Resulting from In-Memory Queries
108.16.3
Primary Key Queries and the Cache
108.16.4
How to Disable the Identity Map Cache Update During a Read Query
108.16.5
How to Refresh the Cache
108.16.5.1
Object Refresh
108.16.5.2
Cascading Object Refresh
108.16.5.3
Refreshing the Identity Map Cache During a Read Query
108.16.6
How to Cache Query Results in the Session Cache
108.16.7
How to Cache Query Results in the Query Cache
108.16.7.1
Internal Query Cache Restrictions
108.16.8
How to Use Caching and EJB 2.
n
CMP Finders
108.16.8.1
Caching Options
108.16.8.2
Disabling Cache for Returned Finder Results
108.16.8.3
Refreshing Finder Results
108.17
Query API
109
Using Basic Query API
109.1
Using Session Queries
109.1.1
How to Read Objects with a Session Query
109.1.1.1
Reading an Object with a Session Query
109.1.1.2
Reading All Objects with a Session Query
109.1.1.3
Refreshing an Object with a Session Query
109.1.2
How to Create, Update, and Delete Objects with a Session Query
109.1.2.1
Writing a Single Object to the Database with a Session Query
109.1.2.2
Writing All Objects to the Database with a Session Query
109.1.2.3
Adding New Objects to the Database with a Session Query
109.1.2.4
Modifying Existing Objects in the Database with a Session Query
109.1.2.5
Deleting Objects in the Database with a Session Query
109.2
Using DatabaseQuery Queries
109.2.1
How to Read Objects Using a DatabaseQuery
109.2.1.1
Performing Basic DatabaseQuery Read Operations
109.2.1.2
Reading Objects Using Partial Object Queries
109.2.1.3
Reading Objects Using Report Queries
109.2.1.4
Reading Objects Using Query-By-Example
109.2.1.5
Specifying Read Ordering
109.2.1.6
Specifying a Collection Class
109.2.1.7
Specifying the Maximum Rows Returned
109.2.1.8
Configuring Query Timeout at the Query Level
109.2.1.9
Using Batch Reading
109.2.1.10
Using Join Reading with ObjectLevelReadQuery
109.2.2
How to Create, Update, and Delete Objects with a DatabaseQuery
109.2.2.1
Using Write Query
109.2.2.2
Performing Noncascading Write Queries
109.2.2.3
Disabling the Identity Map Cache During a Write Query
109.2.3
How to Update and Delete Multiple Objects with a DatabaseQuery
109.2.3.1
Using UpdateAll Queries
109.2.3.2
Using DeleteAll Queries
109.2.4
How to Read Data with a DatabaseQuery
109.2.4.1
Using a DataReadQuery
109.2.4.2
Using a DirectReadQuery
109.2.4.3
Using a ValueReadQuery
109.2.5
How to Update Data with a DatabaseQuery
109.2.6
How to Specify a Custom SQL String in a DatabaseQuery
109.2.7
How to Specify a Custom JPQL String in a DatabaseQuery
109.2.8
How to Specify a Custom EJB QL String in a DatabaseQuery
109.2.9
How to Use Parameterized SQL and Statement Caching in a DatabaseQuery
109.3
Using Named Queries
109.4
Using a SQLCall
109.4.1
How to Configure a SQLCall Without Arguments
109.4.2
How to Configure a SQLCall with Arguments Using JDBC Data Types
109.4.3
What You May Need to Know About Using a SQLCall
109.5
Using a StoredProcedureCall
109.5.1
How to Configure a StoredProcedureCall Without Arguments
109.5.2
How to Configure a StoredProcedureCall with Arguments Using JDBC Data Types
109.5.3
How to Configure a PLSQLStoredProcedureCall with PL/SQL Data Type Arguments
109.5.4
How to Specify a Simple Optimistic Version Locking Value with a StoredProcedureCall Using JDBC Data Types
109.5.5
How to Configure a StoredProcedureCall Output Parameter Event Using JDBC or PL/SQL Data Types
109.5.6
What You May Need to Know About Using a StoredProcedureCall
109.6
Using a StoredFunctionCall
109.6.1
What You May Need to Know About Using a StoredFunctionCall
109.7
Using Java Persistence Query Language (JPQL) Calls
109.8
Using EIS Interactions
109.9
Handling Exceptions
109.10
Handling Collection Query Results
109.11
Handling Report Query Results
110
Introduction to TopLink Expressions
110.1
Expression Framework
110.1.1
Expressions Compared to SQL
110.2
Expression Components
110.2.1
Boolean Logic
110.2.2
Database Functions and Operators
110.2.3
Mathematical Functions
110.2.4
XMLType Functions
110.2.5
Platform and User-Defined Functions
110.2.6
Expressions for One-to-One and Aggregate Object Relationships
110.2.7
Expressions for Joining and Complex Relationships
110.2.7.1
What You May Need to Know About Joins
110.2.7.2
Using TopLink Expression API for Joins
110.3
Parameterized Expressions
110.3.1
Expression Method getParameter
110.3.2
Expression Method getField
110.4
Query Keys and Expressions
110.5
Multiple Expressions
110.5.1
How to Use Subselects and Subqueries
110.5.2
How to Use Parallel Expressions
110.6
Data Queries and Expressions
110.6.1
How to Use the getField Method
110.6.2
How to Use the getTable Method
110.7
Creating an Expression
110.7.1
How to Create an Expression Using TopLink Workbench
110.7.1.1
Adding Arguments
110.7.2
How to Create an Expression Using Java
110.8
Creating and Using a User-Defined Function
110.8.1
How to Make a User-Defined Function Available to a Specific Platform
110.8.2
How to Make a User-Defined Function Available to All Platforms
110.8.2.1
Using a User-Defined Function
111
Using Advanced Query API
111.1
Using Redirect Queries
111.1.1
How to Create a Redirect Query
111.2
Using Historical Queries
111.3
Using Queries with Fetch Groups
111.3.1
How to Configure Default Fetch Group Behavior
111.3.2
How to Query with a Static Fetch Group
111.3.3
How to Query with a Dynamic Fetch Group
111.4
Using Read-Only Queries
111.5
Querying on Interfaces
111.6
Querying on an Inheritance Hierarchy
111.7
Appending Additional Join Expressions
111.7.1
How to Append Additional Join Expressions Using Java
111.8
Using Queries on Variable One-to-One Mappings
111.9
Using Oracle Database Features
111.9.1
How to Use Oracle Hints
111.9.2
How to Use Hierarchical Queries
111.9.2.1
Using startWith Parameter
111.9.2.2
Using connectBy Parameter
111.9.2.3
Using orderSibling Parameter
111.10
Using EJB 2.
n
CMP Finders
111.10.1
How to Create a Finder
111.10.1.1
ejb-jar.xml Finder Options
111.10.2
How to Use DatabaseQuery Finders
111.10.3
How to Use Named Query Finders
111.10.4
How to Use Primary Key Finders
111.10.5
How to Use EJB QL Finders
111.10.6
How to Use SQL Finders
111.10.7
How to Use Redirect Finders
111.10.8
How to Use the ejbSelect Method
111.11
Handling Cursor and Stream Query Results
111.11.1
How to Handle Cursors and Java Iterators
111.11.1.1
Traversing Data with Scrollable Cursors
111.11.2
How to Handle Java Streams
111.11.2.1
Using Cursored Stream Support
111.11.3
How to Optimize Streams
111.11.4
How to Use Cursors and Streams with EJB 2.
n
CMP Finders
111.11.4.1
Building the Query
111.11.4.2
Executing the Finder from the Client
111.12
Handling Query Results Using Pagination
111.13
Using Queries and the Cache
111.13.1
How to Cache Results in a ReadQuery
111.13.2
How to Configure Cache Expiration at the Query Level
112
Introduction to TopLink Support for Oracle Spatial
112.1
TopLink Support for Oracle Spatial
112.2
Using Structure Converters
112.2.1
How to Configure the Database Platform to Use Structure Converters
112.2.2
How to Set Up Mappings Using Structure Converters
112.3
Using JGeometry
112.3.1
How to Configure the Database Platform to Use JGeometry
112.3.2
How to Map JGeometry Attributes
112.3.3
How to Perform Queries Using Spatial Operator Expressions
Part XXV Transactions
113
Introduction to TopLink Transactions
113.1
Unit of Work Architecture
113.1.1
Unit of Work Transaction Context
113.1.2
Unit of Work Transaction Demarcation
113.1.2.1
JTA Controlled Transactions
113.1.2.2
OTS Controlled Transactions
113.1.2.3
CMP-Controlled Transactions
113.1.3
Unit of Work Transaction Isolation
113.2
Unit of Work Concepts
113.2.1
Unit of Work Benefits
113.2.2
Unit of Work Life Cycle
113.2.3
Unit of Work and Change Policy
113.2.3.1
Deferred Change Detection Policy
113.2.3.2
Object-Level Change Tracking Policy
113.2.3.3
Attribute Change Tracking Policy
113.2.3.4
Change Policy Mapping Support
113.2.4
Clones and the Unit of Work
113.2.5
Nested and Parallel Units of Work
113.2.5.1
Nested Unit of Work
113.2.5.2
Parallel Unit of Work
113.2.6
Commit and Rollback Transactions
113.2.6.1
Commit Transactions
113.2.6.2
Rollback Transactions
113.2.7
Primary Keys
113.2.8
Unit of Work Optimization
113.3
Unit of Work API
113.3.1
Unit of Work as Session
113.3.1.1
Reading and Querying Objects with the Unit of Work
113.3.1.2
Locking and the Unit of Work
113.4
Example Model Object and Schema
114
Using Basic Unit of Work API
114.1
Acquiring a Unit of Work
114.2
Creating an Object
114.3
Modifying an Object
114.4
Associating a New Target to an Existing Source Object
114.4.1
How to Associate a New Target to an Existing Source Object in a Unidirectional Relationship: Reference to the New Cache Object After Commit not Required
114.4.2
How to Associate a New Target to an Existing Source Object in a Unidirectional Relationship: Reference to the New Cache Object After Commit Required
114.4.3
How to Associate a New Target to an Existing Source Object in a Bidirectional Relationship: Query for Target Before Commit not Required
114.4.4
How to Associate a New Target to an Existing Source Object in a Bidirectional Relationship: Query for Target Object Before Commit Required
114.5
Associating a New Source to an Existing Target Object
114.6
Associating an Existing Source to an Existing Target Object
114.7
Deleting Objects
114.7.1
How to Use the privateOwnedRelationship Attribute
114.7.2
How to Explicitly Delete from the Database
114.7.3
What You May Need to Know About the Order in which Objects Are Deleted
115
Using Advanced Unit of Work API
115.1
Registering and Unregistering Objects
115.1.1
How to Create and Register a New Object in One Step Using UnitOfWork Method newInstance
115.1.2
How to Use the registerAllObjects Method
115.1.3
How to Use Registration and Existence Checking
115.1.3.1
Using Check Database
115.1.3.2
Using Assume Existence
115.1.3.3
Using Assume Nonexistence
115.1.4
How to Work with Aggregates
115.1.5
How to Unregister Working Clones
115.1.6
What You May Need to Know About Object Registration
115.2
Declaring Read-Only Classes
115.2.1
How to Configure Read-Only Classes for a Single Unit of Work
115.2.2
How to Configure Default Read-Only Classes
115.2.3
How to Declare Read-Only Descriptors
115.3
Writing Changes Before Commit Time
115.4
Using Conforming Queries and Descriptors
115.4.1
How to Use Conforming
115.4.1.1
Ensuring that the Query Supports Conforming
115.4.1.2
Considering how Conforming Affects Database Results
115.4.1.3
Registering New Objects and Instantiate Relationships
115.4.2
How to Use Conforming Queries
115.4.3
How to Use Conforming Descriptors
115.4.4
What You May Need to Know About Conforming Query Alternatives
115.4.4.1
Using Unit of Work Method writeChanges Instead of Conforming
115.4.4.2
Using Unit of Work Properties Instead of Conforming
115.5
Merging Changes in Working Copy Clones
115.6
Resuming a Unit of Work After Commit
115.7
Reverting a Unit of Work
115.8
Using a Nested or Parallel Unit of Work
115.8.1
How to Use Parallel Unit of Work
115.8.2
How to Use Nested Unit of Work
115.9
Using a Unit of Work with Custom SQL
115.10
Controlling the Order of Delete Operations
115.10.1
How to Use the setShouldPerformDeletesFirst Method of the Unit of Work
115.10.2
How to Use the addConstraintDependencies Method of the Descriptor
115.10.3
How to Use the deleteAllObjects Method Without the addConstraintDependencies Method
115.10.4
How to Use the deleteAllObjects Method with the addConstraintDependencies Method
115.11
Using Optimistic Read Locking with the forceUpdateToVersionField Method
115.11.1
How to Force a Check of the Optimistic Read Lock
115.11.2
How to Force a Version Field Update
115.11.3
How to Disable the forceUpdateToVersionField Configuration
115.12
Implementing User and Date Auditing with the Unit of Work
115.13
Integrating the Unit of Work with an External Transaction Service
115.13.1
How to Acquire a Unit of Work with an External Transaction Service
115.13.2
How to Use a Unit of Work when an External Transaction Exists
115.13.3
How to Use a Unit of Work when No External Transaction Exists
115.13.4
How to Use the Unit of Work to Handle External Transaction Timeouts and Exceptions
115.13.4.1
Handling External Transaction Commit Timeouts
115.13.4.2
Handling External Transaction Commit Exceptions
115.14
Integrating the Unit of Work with CMP
115.14.1
How to Use CMP Transaction Attribute
115.14.2
How to Use Local Transactions
115.14.3
How to Use Nondeferred Changes
115.15
Database Transaction Isolation Levels
115.15.1
What You May Need to Know About General Factors Affecting Transaction Isolation Level
115.15.1.1
External Applications
115.15.1.2
TopLink Coordinated Cache
115.15.1.3
DatabaseLogin Method setTransactionIsolation
115.15.1.4
Reading Through the Write Connection
115.15.1.5
Managing Cache Access
115.15.1.6
CMP and External Transactions
115.15.2
What You May Need to Know About Read Uncommitted Level
115.15.3
What You May Need to Know About Read Committed Level
115.15.4
What You May Need to Know About Repeatable Read Levels
115.15.5
What You May Need to Know About Serializable Read Levels
115.16
Troubleshooting a Unit of Work
115.16.1
How to Avoid the Use of Post-Commit Clones
115.16.2
How to Determine Whether or Not an Object Is the Cache Object
115.16.3
How to Dump the Contents of a Unit of Work
115.16.4
How to Handle Exceptions
115.16.4.1
Handling Exceptions at Commit Time
115.16.4.2
Handling Exceptions During Conforming
115.16.5
How to Validate a Unit of Work
115.16.5.1
Validating the Unit of Work Before Commit Time
Part XXVI Creation and Configuration of Projects
116
Creating a Project
116.1
Introduction to the Project Creation
116.1.1
How to Create a Project Using Oracle JDeveloper
116.1.2
How to Create a Project Using TopLink Workbench
116.1.2.1
Creating New TopLink Workbench Projects
116.1.3
How to Create a Project Using Java
116.2
Working with Projects
116.2.1
How to Open Existing Projects
116.2.2
How to Save Projects
116.2.2.1
Saving Projects with a New Name or Location
116.2.3
How to Generate the Project Status Report
116.3
Exporting Project Information
116.3.1
How to Export Deployment XML Information Using TopLink Workbench
116.3.2
How to Export Model Java Source Using TopLink Workbench
117
Configuring a Project
117.1
Configuring Common Project Options
117.2
Configuring Project Save Location
117.2.1
How to Configure Project Save Location Using TopLink Workbench
117.3
Configuring Project Classpath
117.3.1
How to Configure Project Classpath Using TopLink Workbench
117.4
Configuring Method or Direct Field Access at the Project Level
117.4.1
How to Configure Method or Direct Field Access at the Project Level Using TopLink Workbench
117.5
Configuring Persistence Type
117.5.1
How to Configure Persistence Type Using TopLink Workbench
117.6
Configuring Default Descriptor Advanced Properties
117.6.1
How to Configure Default Descriptor Advanced Properties Using TopLink Workbench
117.7
Configuring Existence Checking at the Project Level
117.7.1
How to Configure Existence Checking at the Project Level Using TopLink Workbench
117.8
Configuring Project Deployment XML Options
117.8.1
How to Configure Project Deployment XML Options Using TopLink Workbench
117.9
Configuring Model Java Source Code Options
117.9.1
How to Configure Model Java Source Code Options Using TopLink Workbench
117.10
Configuring Cache Type and Size at the Project Level
117.10.1
How to Configure Cache Type and Size at the Project Level Using TopLink Workbench
117.10.2
How to Configure Cache Type and Size at the Project Level Using Java
117.11
Configuring Cache Isolation at the Project Level
117.11.1
How to Configure Cache Isolation at the Project Level Using TopLink Workbench
117.12
Configuring Cache Coordination Change Propagation at the Project Level
117.12.1
How to Configure Cache Coordination Change Propagation at the Project Level Using TopLink Workbench
117.13
Configuring Cache Expiration at the Project Level
117.13.1
How to Configure Cache Expiration at the Project Level Using TopLink Workbench
117.14
Configuring Project Comments
117.14.1
How to Configure Project Comments Using TopLink Workbench
Part XXVII Creation and Configuration of Descriptors
118
Creating a Descriptor
118.1
Introduction to Descriptor Creation
118.2
Validating Descriptors
118.3
Generating Java Code for Descriptors
119
Configuring a Descriptor
119.1
Configuring Common Descriptor Options
119.2
Configuring Primary Keys
119.2.1
How to Configure Primary Keys Using TopLink Workbench
119.2.2
How to Configure Primary Keys Using Java
119.2.2.1
Relational Projects
119.2.2.2
EIS Projects
119.3
Configuring Read-Only Descriptors
119.3.1
How to Use Read-Only EJB CMP Entity Beans
119.3.2
How to Configure Read-Only Descriptors Using TopLink Workbench
119.3.3
How to Configure Read-Only Descriptors Using Java
119.4
Configuring Unit of Work Conforming at the Descriptor Level
119.4.1
How to Configure Unit of Work Conforming at the Descriptor Level Using TopLink Workbench
119.4.2
How to Configure Unit of Work Conforming at the Descriptor Level Using Java
119.5
Configuring Descriptor Alias
119.5.1
How to Configure Descriptor Alias Using TopLink Workbench
119.5.2
How to Configure Descriptor Alias Using Java
119.6
Configuring Descriptor Comments
119.6.1
How to Configure Descriptor Comments Using TopLink Workbench
119.7
Configuring Named Queries at the Descriptor Level
119.7.1
How to Configure Named Queries at the Descriptor Level Using TopLink Workbench
119.7.1.1
Adding Named Queries
119.7.1.2
Configuring Named Query Type and Parameters
119.7.1.3
Configuring Named Query Selection Criteria
119.7.1.4
Configuring Read All Query Order
119.7.1.5
Configuring Named Query Optimization
119.7.1.6
Configuring Named Query Attributes
119.7.1.7
Configuring Named Query Group/Order Options
119.7.1.8
Creating an EIS Interaction for a Named Query
119.7.1.9
Configuring Named Query Options
119.7.1.10
Configuring Named Query Advanced Options
119.7.2
How to Configure Named Queries at the Descriptor Level Using Java
119.8
Configuring Query Timeout at the Descriptor Level
119.8.1
How to Configure Query Timeout at the Descriptor Level TopLink Workbench
119.8.2
How to Configure Query Timeout at the Descriptor Level Java
119.9
Configuring Cache Refreshing
119.9.1
How to Configure Cache Refreshing Using TopLink Workbench
119.9.2
How to Configure Cache Refreshing Using Java
119.10
Configuring Query Keys
119.10.1
How to Configure Query Keys Using TopLink Workbench
119.10.2
How to Configure Query Keys Using Java
119.11
Configuring Interface Query Keys
119.11.1
How to Configure Interface Query Keys Using TopLink Workbench
119.11.2
How to Configure Interface Query Keys Using Java
119.12
Configuring Cache Type and Size at the Descriptor Level
119.12.1
How to Configure Cache Type and Size at the Descriptor Level Using TopLink Workbench
119.12.2
How to Configure Cache Type and Size at the Descriptor Level Using Java
119.13
Configuring Cache Isolation at the Descriptor Level
119.13.1
How to Configure Cache Isolation at the Descriptor Level Using TopLink Workbench
119.13.2
How to Configure Cache Isolation at the Descriptor Level Using Java
119.14
Configuring Unit of Work Cache Isolation at the Descriptor Level
119.14.1
How to Configure Unit of Work Cache Isolation at the Descriptor Level Using Java
119.15
Configuring Cache Coordination Change Propagation at the Descriptor Level
119.15.1
How to Configure Cache Coordination Change Propagation at the Descriptor Level Using TopLink Workbench
119.15.2
How to Configure Cache Coordination Change Propagation at the Descriptor Level Using Java
119.16
Configuring Cache Expiration at the Descriptor Level
119.16.1
How to Configure Cache Expiration at the Descriptor Level Using TopLink Workbench
119.16.2
How to Configure Cache Expiration at the Descriptor Level Using Java
119.17
Configuring Cache Existence Checking at the Descriptor Level
119.17.1
How to Configure Cache Existence Checking at the Descriptor Level Using TopLink Workbench
119.17.2
How to Configure Cache Existence Checking at the Descriptor Level Using Java
119.18
Configuring a Descriptor with EJB CMP and BMP Information
119.18.1
How to Configure a Descriptor with EJB CMP and BMP Information Using TopLink Workbench
119.18.2
How to Configure a Descriptor with EJB CMP and BMP Information Using Java
119.18.2.1
Configuring CMP Information
119.18.2.2
Configuring BMP Information
119.19
Configuring Reading Subclasses on Queries
119.19.1
How to Configure Reading Subclasses on Queries Using TopLink Workbench
119.19.2
How to Configure Reading Subclasses on Queries Using Java
119.20
Configuring Inheritance for a Child (Branch or Leaf) Class Descriptor
119.20.1
How to Configure Inheritance for a Child (Branch or Leaf) Class Descriptor Using TopLink Workbench
119.20.2
How to Configure Inheritance for a Child (Branch or Leaf) Class Descriptor Using Java
119.21
Configuring Inheritance for a Parent (Root) Descriptor
119.21.1
How to Configure Inheritance for a Parent (Root) Descriptor Using TopLink Workbench
119.21.2
How to Configure Inheritance for a Parent (Root) Descriptor Using Java
119.22
Configuring Inheritance Expressions for a Parent (Root) Class Descriptor
119.22.1
How to Configure Inheritance Expressions for a Parent (Root) Class Descriptor Using Java
119.23
Configuring Inherited Attribute Mapping in a Subclass
119.23.1
How to Configure Inherited Attribute Mapping in a Subclass Using TopLink Workbench
119.23.2
How to Configure Inherited Attribute Mapping in a Subclass Using Java
119.24
Configuring a Domain Object Method as an Event Handler
119.24.1
How to Configure a Domain Object Method as an Event Handler Using TopLink Workbench
119.24.2
How to Configure a Domain Object Method as an Event Handler Using Java
119.25
Configuring a Descriptor Event Listener as an Event Handler
119.25.1
How to Configure a Descriptor Event Listener as an Event Handler Using TopLink Workbench
119.25.2
How to Configure a Descriptor Event Listener as an Event Handler Using Java
119.26
Configuring Locking Policy
119.26.1
How to Configure Locking Policy UsingTopLink Workbench
119.26.2
How to Configure Locking Policy Using Java
119.26.2.1
Configuring an Optimistic Locking Policy
119.26.2.2
Configuring Optimistic Locking Policy Cascading
119.26.2.3
Configuring a Pessimistic Locking Policy
119.27
Configuring Returning Policy
119.27.1
How to Configure Returning Policy Using TopLink Workbench
119.27.2
How to Configure Returning Policy Using Java
119.28
Configuring Instantiation Policy
119.28.1
How to Configure Instantiation Policy Using TopLink Workbench
119.28.2
How to Configure Instantiation Policy Using Java
119.29
Configuring Copy Policy
119.29.1
How to Configure Copy Policy Using TopLink Workbench
119.29.2
How to Configure Copy Policy Using Java
119.30
Configuring Change Policy
119.30.1
How to Configure Change Policy Using Java
119.30.1.1
Configuring Deferred Change Detection Policy
119.30.1.2
Configuring Object Change Tracking Policy
119.30.1.3
Configuring Attribute Change Tracking Policy
119.31
Configuring a History Policy
119.31.1
How to Configure a History Policy Using Java
119.31.1.1
Configuring Write Responsibility
119.32
Configuring Wrapper Policy
119.32.1
How to Configure Wrapper Policy Using Java
119.33
Configuring Fetch Groups
119.33.1
How to Configure Fetch Groups Using Java
119.34
Configuring a Descriptor Customizer Class
119.34.1
How to Configure Customizer Class Using Java
119.35
Configuring Amendment Methods
119.35.1
How to Configure Amendment Methods Using TopLink Workbench
Part XXVIII Creation and Configuration of Mappings
120
Creating a Mapping
120.1
Introduction to Mapping Creation
120.2
Creating Mappings Manually During Development
120.2.1
How to Create Mappings Manually During Development Using TopLink Workbench
120.2.2
How to Create Mappings During Development Using Java
120.3
Creating Mappings Automatically During Development
120.3.1
How to Create Mappings Automatically During Development Using TopLink Workbench
120.4
Creating Mappings Automatically During Deployment
120.5
Creating Mappings to Oracle LOB Database Objects
120.5.1
How to Create Mappings to Oracle LOB Database Objects Using the Oracle JDBC Thin Driver
120.6
Removing Mappings
120.6.1
How to Remove Mappings Using TopLink Workbench
120.6.2
How to Remove Mappings Using Java
121
Configuring a Mapping
121.1
Configuring Common Mapping Options
121.2
Configuring Read-Only Mappings
121.2.1
How to Configure Read-Only Mappings Using TopLink Workbench
121.2.2
How to Configure Read-Only Mappings Using Java
121.3
Configuring Indirection (Lazy Loading)
121.3.1
How to Configure Indirection Using TopLink Workbench
121.3.2
How to Configure Indirection Using Java
121.3.2.1
Configuring Value Holder Indirection
121.3.2.2
Configuring Value Holder Indirection with Method Accessing
121.3.2.3
Configuring Value Holder Indirection with JPA
121.3.2.4
Configuring IndirectContainer Indirection
121.3.2.5
Configuring Proxy Indirection
121.4
Configuring XPath
121.4.1
How to Configure XPath Using TopLink Workbench
121.4.1.1
Choosing the XPath
121.5
Configuring a Default Null Value at the Mapping Level
121.5.1
How to Configure a Default Null Value at the Mapping Level Using TopLink Workbench
121.5.2
How to Configure a Default Null Value at the Mapping Level Using Java
121.6
Configuring Method or Direct Field Accessing at the Mapping Level
121.6.1
How to Configure Method or Direct Field Accessing Using TopLink Workbench
121.6.2
How to Configure Method or Direct Field Accessing Using Java
121.7
Configuring Private or Independent Relationships
121.7.1
How to Configure Private or Independent Relationships Using TopLink Workbench
121.7.2
How to Configure Private or Independent Relationships Using Java
121.8
Configuring Mapping Comments
121.8.1
How to Configure Mapping Comments Using TopLink Workbench
121.9
Configuring a Serialized Object Converter
121.9.1
How to Configure a Serialized Object Converter Using TopLink Workbench
121.9.2
How to Configure a Serialized Object Converter Using Java
121.10
Configuring a Type Conversion Converter
121.10.1
How to Configure a Type Conversion Converter Using TopLink Workbench
121.10.2
How to Configure a Type Conversion Converter Using Java
121.11
Configuring an Object Type Converter
121.11.1
How to Configure an Object Type Converter Using TopLink Workbench
121.11.2
How to Configure an Object Type Converter Using Java
121.12
Configuring a Simple Type Translator
121.12.1
How to Configure a Simple Type Translator Using TopLink Workbench
121.12.2
How to Configure a Simple Type Translator Using Java
121.13
Configuring a JAXB Typesafe Enumeration Converter
121.13.1
How to Configure a JAXB Typesafe Enumeration Converter Using Java
121.14
Configuring Container Policy
121.14.1
How to Configure Container Policy Using TopLink Workbench
121.14.2
How to Configure Container Policy Using Java
121.15
Configuring Attribute Transformer
121.15.1
How to Configure Attribute Transformer Using TopLink Workbench
121.15.2
How to Configure Attribute Transformer Using Java
121.16
Configuring Field Transformer Associations
121.16.1
How to Configure Field Transformer Associations Using TopLink Workbench
121.16.1.1
Specifying Field-to-Transformer Associations
121.16.2
How to Configure Field Transformer Associations Using Java
121.17
Configuring Mutable Mappings
121.17.1
How to Configure Mutable Mappings Using TopLink Workbench
121.17.2
How to Configure Mutable Mappings Using Java
121.18
Configuring Bidirectional Relationship
121.18.1
How to Configure Bidirectional Relationship Using TopLink Workbench
121.18.2
How to Configure Bidirectional Relationship Using Java
121.19
Configuring the Use of a Single Node
121.19.1
How to Configure the Use of a Single Node Using TopLink Workbench
121.19.2
How to Configure the Use of a Single Node Using Java
121.20
Configuring the Use of CDATA
121.20.1
How to Configure the Use of CDATA Using Java
A
Troubleshooting a TopLink Application
A.1
TopLink Support for Oracle Application Server Manageability and Diagnosability
A.1.1
Oracle Application Server Manageability and Diagnosability Logging Enhancements
A.1.2
Oracle Dynamic Monitoring System (DMS) Sensor Enhancements
A.1.3
Manageability and Diagnosability JMX Enhancements
A.2
TopLink Exception Error Reference
A.2.1
Descriptor Exceptions
A.2.2
Concurrency Exceptions
A.2.3
Conversion Exceptions
A.2.4
Database Exceptions
A.2.5
Optimistic Lock Exceptions
A.2.6
Query Exceptions
A.2.7
Validation Exceptions
A.2.8
EJB QL Exceptions
A.2.9
Session Loader Exceptions
A.2.10
EJB Exception Factory Exceptions
A.2.11
Communication Exceptions
A.2.12
EIS Exceptions
A.2.13
JMS Processing Exceptions
A.2.14
Default Mapping Exceptions
A.2.15
Discovery Exceptions
A.2.16
Remote Command Manager Exceptions
A.2.17
Transaction Exceptions
A.2.18
XML Conversion Exceptions
A.2.19
XML Marshal Exceptions
A.2.20
Migration Utility Exceptions
A.2.21
XML Platform Exceptions
A.2.22
Entity Manager Setup Exceptions
A.2.23
EJB JAR XML Exceptions
A.3
TopLink Workbench Error Reference
A.3.1
Miscellaneous Errors (1 – 89, 106 – 133)
A.3.2
Project Errors (100 – 102)
A.3.3
Descriptor Errors (200 – 399)
A.3.4
Mapping Errors (400 – 483)
A.3.5
Table Errors (500 – 610)
A.3.6
XML Schema Errors (700 – 706)
A.3.7
Session Errors (800 – 812)
A.3.8
Common Classpath Problems
A.3.9
Database Connection Problems
Glossary
Index
Scripting on this page enhances content navigation, but does not change the content in any way.