Home
/
Middleware
/
Oracle TopLink
1/17
Contents
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documents
Conventions
1
Overview of Oracle TopLink
1.1
Understanding TopLink
1.1.1
What Is the Object-Persistence Impedance Mismatch?
1.1.2
The EclipseLink Solution
1.2
Key Features
1.3
New Features
1.3.1
RESTful Services
1.3.2
Tenant Isolation
1.3.3
NoSQL
1.3.4
JSON
1.3.5
Database Change Notification
1.3.6
Extensible Entities
1.3.7
Composite Persistence Units
1.3.8
External Metadata Sources
1.3.9
TopLink Grid
1.4
Key Concepts
1.4.1
EclipseLink Metadata
1.4.2
Entities
1.4.3
Descriptors
1.4.4
Mappings
1.4.5
Data Access
1.4.6
Caching
1.4.7
Queries
1.4.8
Expression Framework
1.4.9
NoSQL Databases
1.4.10
Performance Monitoring and Profiling
1.5
Key Components
1.5.1
EclipseLink Core and API
1.5.2
Object-Relational (JPA 2.0) Component
1.5.3
Object-XML (JAXB 2.2) Component
1.5.3.1
SDO Component
1.5.4
Database Web Services Component
1.5.5
TopLink Grid
1.6
Key Tools
1.6.1
Oracle JDeveloper
1.6.2
Oracle Enterprise Pack for Eclipse
1.6.3
Eclipse
1.6.4
NetBeans
2
Understanding Mappings
2.1
About Object-Relational Mapping
2.1.1
Understanding Object-Relational Entity Architecture
2.1.1.1
Entities
2.1.1.2
Persistence and Persistence Units
2.1.1.3
Entity Managers
2.1.2
Adding Metadata Using Annotations
2.1.2.1
Advantages and Disadvantages of Using Annotations
2.1.3
About Configuration Basics
2.1.3.1
Default Configuration Values
2.1.3.2
Configuring Persistence Units Using persistence.xml
2.1.3.3
Object-Relational Data Type Mappings
2.1.3.4
Overriding and Merging Mapping Information
2.1.3.5
Validating the XML Schema
2.1.3.6
Advantages and Disadvantages of Using XML
2.1.4
About Data Sources
2.1.5
About EclipseLink Caches
2.1.5.1
Defining Cache Behavior
2.1.5.2
Caching in Clustered Environments
2.1.6
About Database Queries
2.2
About Object-XML Mapping
2.2.1
Using EclipseLink Object-XML as the JAXB Provider
2.2.2
Understanding Object-XML Architecture
2.2.2.1
JAXB Contexts and JAXB Context Factories
2.2.3
Serving Metadata for Object-XML
2.2.4
About XML Bindings
2.2.4.1
Specifying EclipseLink Object-XML Mappings Using eclipselink-oxm.xml
2.2.5
About Object-XML Data Type Mappings
2.2.6
Querying Objects by XPath
3
Understanding Application Development
3.1
Typical Development Stages
3.2
Target Platforms
3.3
Building and Using the Persistence Layer
3.3.1
Implementation Options
3.3.1.1
Using EclipseLink JPA Metatdata, Annotations, and XML
3.3.1.2
Using EclipseLink Metadata Java API
3.3.1.3
Using Method and Direct Field Access
3.3.1.4
Using Java Byte-code Weaving
3.3.2
Persistent Class Requirements
3.3.3
Persistence Layer Components
3.3.3.1
Mapping Metadata
3.3.3.2
Cache
3.3.3.3
Queries and Expressions
3.4
About Application Deployment
3.5
About Persisting Objects
3.5.1
Application Object Model
3.5.2
Data Storage Schema
3.5.3
Primary Keys and Object Identity
3.5.4
Mappings
3.5.5
Foreign Keys and Object Relationships
3.5.6
Inheritance
3.5.7
Concurrency
3.5.8
Caching
3.5.9
Nonintrusive Persistence
3.5.10
Indirection
3.5.11
Mutability
3.6
About Metadata
3.6.1
Advantages of the Metadata Architecture
3.6.2
Creating Project Metadata
3.6.2.1
Descriptors and Mappings
3.6.2.2
Data Source Login Information
3.6.3
Creating Session Metadata
3.7
About Weaving
3.7.1
Using Dynamic Weaving
3.7.2
Using Static Weaving
3.7.3
Weaving POJO Classes
3.7.4
Weaving and Java EE Application Servers
3.7.5
Disabling Weaving with Persistence Unit Properties
4
Understanding Entities
4.1
Identifying Entities
4.2
Entities and Persistent Identity
4.3
Entities and Database Tables
4.4
Entities and Inheritance
4.5
Entities and Embedded Objects
4.6
Entities and Sequence Generation
4.7
Entities and Locking
5
Understanding Application Deployment
5.1
Integrating with an Application Server
5.1.1
Software Requirements
5.1.2
Setting Security Permissions
5.1.3
Migrating Applications to the EclipseLink Persistence Manager
5.2
About the Persistence Unit
5.2.1
About the Persistence Unit Name
5.2.2
About the Transaction Type, Persistence Provider and Data Source
5.2.3
About Mapping Files
5.2.4
About Managed Classes
5.2.5
About Vendor Properties
5.2.6
About the Deployment Classpath
5.2.7
About Persistence Unit Packaging Options
5.2.8
About the Persistence Unit Scope
5.3
Integrating Clustering
6
Understanding Descriptors
6.1
Common Descriptor Concepts
6.1.1
Descriptor Architecture
6.1.2
Descriptors and Inheritance
6.1.2.1
Specifying a Class Indicator
6.1.2.2
Inheritance and Primary Keys
6.1.2.3
Single and Multi-Table Inheritance
6.1.2.4
Aggregate and Composite Descriptors and Inheritance
6.1.3
Descriptors and Aggregation
6.1.4
Descriptor Customization
6.1.5
Amendment and After-Load Methods
6.1.6
Descriptor Event Manager
6.2
Object-Relational Descriptor Concepts
6.2.1
Fetch Groups
6.2.1.1
AttributeGroup Types and Operations
6.2.1.2
FetchGroup
6.2.1.3
Default FetchGroup
6.2.1.4
Named FetchGroup
6.2.1.5
Full FetchGroup
6.2.1.6
Load/LoadAll with FetchGroup
6.2.1.7
LoadGroup
6.2.1.8
CopyGroup
6.2.1.9
Merging
6.2.2
Descriptor Query Manager
6.2.3
Descriptors and Sequencing
6.2.4
Descriptors and Locking
6.2.4.1
Optimistic Version Locking Policies
6.2.4.2
Pessimistic Locking Policies
6.2.4.3
Applying Locking in an Application
6.3
Object-XML Descriptor Concepts
6.3.1
Default Root Element
6.4
Descriptor API
7
Understanding Mappings
7.1
Common Mapping Concepts
7.1.1
Mapping Architecture
7.1.2
Mapping Examples
7.1.3
Using Lazy Loading
7.1.4
Mapping Converters and Transformers
7.1.4.1
Serialized Object Converter
7.1.4.2
Type Conversion Converter
7.1.4.3
Object Type Converter
7.1.4.4
Transformation Mappings
7.1.5
Transformation Mapping
7.2
Object-Relational Mapping Concepts
7.2.1
Indirection (Lazy Loading)
7.2.2
Value Holder Indirection
7.2.3
Transparent Indirection
7.2.4
Proxy Indirection
7.2.4.1
Proxy Indirection Restrictions
7.2.5
Weaved Indirection
7.2.6
Indirection and JPA
7.2.7
Indirection, Serialization, and Detachment
7.3
Object-XML Mapping Concepts
7.3.1
Simple Type Translation
7.3.1.1
Default Read Conversions
7.3.1.2
Default Write Conversions
7.4
Object-JSON Mapping Concepts
7.5
About JPA Mapping Types
7.5.1
Basic Mappings
7.5.2
Default Conversions and Converters
7.5.3
Collection Mappings
7.5.3.1
One-to-Many Mapping
7.5.3.2
Many-to-Many Mapping
7.5.4
Using Optimistic Locking
7.5.4.1
Optimistic Locking in a Stateless Environment
7.5.4.2
Optimistic Version Locking
8
Understanding Data Access
8.1
About Externally Managed Transactional Data Sources
8.2
About Data Source Login Types
8.3
About Data Source Platform Types
8.4
About Authentication
8.4.1
Simple JDBC Authentication
8.4.2
Oracle Database Proxy Authentication
8.4.3
Auditing
8.5
About Connections
8.6
About Connection Pools
8.6.1
Internal Connection Pools
8.6.2
External Connection Pools
8.6.3
Default (Write) and Read Connection Pools
8.6.4
Sequence Connection Pools
8.6.5
Application-Specific Connection Pools
8.7
About Data Partitioning Policies
8.8
About Clustered Databases and Oracle RAC
9
Understanding Caching
9.1
About Cache Architecture
9.1.1
Persistence Unit Cache
9.1.2
Persistence Context Cache
9.1.2.1
Application Managed Persistence Contexts
9.1.2.2
Container Managed Persistence Contexts
9.1.3
Shared, Isolated, Protected, Weak, and Read-only Caches
9.1.3.1
Isolated Cache
9.1.3.2
Shared Cache
9.1.3.3
Protected Cache
9.1.3.4
Weak Reference Mode
9.1.3.5
Read-Only Entities
9.2
About Cache Type and Size
9.2.1
FULL Cache Type
9.2.2
WEAK Cache Type
9.2.3
SOFT Cache Type
9.2.4
SOFT_CACHE and HARD_CACHE Cache Type
9.2.5
NONE and CACHE
9.2.6
Guidelines for Configuring the Cache and Identity Maps
9.2.6.1
About the Internals of Weak, Soft, and Hard Cache Types
9.3
About Queries and the Cache
9.4
About Handling Stale Data
9.4.1
Configuring a Locking Policy
9.4.1.1
Optimistic Locking
9.4.1.2
Pessimistic Locking
9.4.2
Configuring the Cache on a Per-Class Basis
9.4.3
Forcing a Cache Refresh when Required on a Per-Query Basis
9.4.4
Configuring Cache Invalidation
9.4.5
Configuring Cache Coordination
9.5
About Explicit Query Refreshes
9.5.1
Refresh Policy
9.6
About Cache Expiration and Invalidation
9.6.1
Advanced Cache Invalidation
9.7
About Cache Indexes
9.8
About Query Results Cache
9.9
About Cache Locking and Transaction Isolation
9.10
About Cache Optimization
9.11
About Cache Coordination
9.11.1
When to Use Cache Coordination
9.11.2
Coordinated Cache Architecture and Types
9.11.2.1
JMS Coordinated Cache
9.11.2.2
RMI Coordinated Cache
9.11.3
Custom Coordinated Cache
9.11.4
Coordinated Cache and Clustering
9.11.4.1
Persistence Property Extensions for Cache Coordination
9.11.4.2
Cache Coordination and Oracle WebLogic
9.11.4.3
Cache Coordination and Glassfish
9.11.4.4
Cache Coordination and IBM WebSphere
10
Understanding Queries
10.1
Query Concepts
10.1.1
Call Objects
10.1.2
DatabaseQuery Objects
10.1.3
Data-Level and Object-Level Queries
10.1.4
Summary Queries
10.1.5
Descriptor Query Manager
10.1.6
EclipseLink Expressions
10.1.7
Query Keys
10.2
About JPQL Queries
10.2.1
Select Queries
10.2.1.1
SELECT Clause
10.2.1.2
FROM Clause
10.2.1.3
ORDER BY clause
10.2.1.4
GROUP BY Clause
10.2.1.5
HAVING Clause
10.2.1.6
UNION
10.2.2
WHERE Clause
10.2.3
Update Queries
10.2.4
Delete Queries
10.2.5
Parameters
10.2.5.1
Literals
10.2.6
Functions
10.2.7
EclipseLink Special Operators
10.2.8
EclipseLink Extensions
10.3
About SQL Query Language
10.4
About the Criteria API
10.4.1
CriteriaBuilder
10.4.2
CriteriaQuery
10.4.3
Where
10.4.4
Subquery
10.4.5
Parameters
10.4.6
Functions
10.4.7
Special Operations
10.4.8
Metamodel
10.4.9
Tuple Queries
10.4.10
JpaCriteriaBuilder and EclipseLink Extensions
10.5
About Native SQL Queries
10.5.1
Parameters
10.5.2
Named Native SQL Queries
10.5.3
SQL Result Set Mapping
10.6
About Advanced Native Query Support
10.7
About JPA Query Hints
10.8
About Query Casting
10.8.1
JPA 2.0 Type
10.8.2
Downcasting in JPQL
10.8.3
JPA Criteria API
10.8.4
EclipseLink Expression Support for Downcast
10.9
About Oracle Extensions for Queries
10.9.1
Query Hints
10.9.2
Hierarchical Queries
10.9.3
Flashback Queries
10.9.4
Stored Functions
11
Understanding EclipseLink Expressions
11.1
About the Expression Framework
11.1.1
Comparing Expressions to SQL
11.2
About Expression Components
11.2.1
Boolean Logic
11.2.2
Database Functions and Operators
11.2.2.1
Database Functions
11.2.2.2
Database Operators
11.2.2.3
Mathematical Functions
11.2.2.4
XMLType Functions
11.2.3
Platform and User-Defined Functions
11.2.4
Expressions for One-to-One and Aggregate Object Relationships
11.2.5
Expressions for Joining and Complex Relationships
11.2.5.1
About Joins
11.2.5.2
Using EclipseLink Expression API for Joins
12
Understanding Non-relational Data Sources
12.1
NoSQL Platform Concepts
12.2
About NoSQL Persistence Units
12.2.1
Persistence Unit Properties for NoSQL Platforms
12.3
About JPA Applications on the NoSQL Platform
12.3.1
Mapping Restrictions on JPA Annotations
12.4
About Mapping NoSQL Objects
12.5
About Queries and the NoSQL Platform
12.6
About Transactions and the NoSQL Platform
13
Understanding Performance Monitoring and Profiling
13.1
Performance Profiling
13.2
Fetch Group Monitoring
13.3
Performance Monitoring
13.4
Query Monitoring
A
Database and Application Server Support
A.1
Database Support
A.2
Application Server Support
A.2.1
EclipseLink MOXy as the JAXB Provider for Application Servers
A.3
Non-SQL Standard Database Support: NoSQL
Scripting on this page enhances content navigation, but does not change the content in any way.