Go to main content
1/16
Contents
Title and Copyright Information
Preface
Audience
Documentation Accessibility
Related Documents
Conventions
What's New in This Guide
New and Changed Features for 12
c
(12.2.1.2.0)
Other Significant Changes in this Book
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
Key Concepts
1.3.1
EclipseLink Metadata
1.3.2
Entities
1.3.3
Descriptors
1.3.4
Mappings
1.3.5
Data Access
1.3.6
Caching
1.3.7
Queries
1.3.8
Expression Framework
1.3.9
NoSQL Databases
1.3.10
Performance Monitoring and Profiling
1.4
Key Components
1.4.1
EclipseLink Core and API
1.4.2
Object-Relational (JPA 2.1) Component
1.4.3
JAXB Component
1.4.4
MOXy Component
1.4.4.1
SDO Component
1.4.5
Database Web Services Component
1.4.6
TopLink Grid
1.5
Key Tools
1.5.1
Oracle JDeveloper
1.5.2
Oracle Enterprise Pack for Eclipse
1.5.3
Eclipse
1.5.4
NetBeans
2
Understanding Object-Relational and MOXy Internals
2.1
About Metadata
2.1.1
Advantages of the Metadata Architecture
2.1.2
Creating Project Metadata
2.1.2.1
Entity Mappings
2.1.2.2
Data Source Login Information
2.1.3
Creating Session Metadata
2.2
About the Object-Relational Solution
2.2.1
Understanding Object-Relational Entity Architecture
2.2.1.1
Entities
2.2.1.2
Persistence and Persistence Units
2.2.1.3
Entity Managers
2.2.2
Adding Metadata Using Annotations
2.2.2.1
Advantages and Disadvantages of Using Annotations
2.2.3
About Configuration Basics
2.2.3.1
Default Annotation Values
2.2.3.2
Configuring Persistence Units Using persistence.xml
2.2.3.3
Object-Relational Data Type Mappings
2.2.4
About Data Sources
2.2.5
About EclipseLink Caches
2.2.5.1
Defining Cache Behavior
2.2.5.2
Caching in Clustered Environments
2.2.6
About Database Queries
2.3
About the MOXy Solution
2.3.1
Using EclipseLink MOXy as the JAXB Provider
2.3.2
Understanding MOXy Architecture
2.3.2.1
JAXB Contexts and JAXB Context Factories
2.3.3
Serving Metadata for MOXy
2.3.4
About XML Bindings
2.3.5
Querying Objects by XPath
3
Understanding the Persistence Unit
3.1
About the Persistence Unit
3.1.1
About the Persistence Unit Name
3.1.2
About the Persistence Provider
3.1.3
About the Transaction Type Data Source
3.1.4
About Logging
3.1.5
About Vendor Properties
3.1.6
About Mapping Files
3.1.7
About Managed Classes
3.1.8
About the Deployment Classpath
3.1.9
About Persistence Unit Packaging Options
3.1.10
About the Persistence Unit Scope
3.1.11
About Composite Persistence Units
3.2
Building and Using the Persistence Layer
3.2.1
Implementation Options
3.2.1.1
Using EclipseLink JPA Metatdata, Annotations, and XML
3.2.1.2
Using EclipseLink Metadata Java API
3.2.1.3
Using Method and Direct Field Access
3.2.1.4
Using Java Byte-code Weaving
3.2.2
Persistent Class Requirements
3.2.3
Persistence Layer Components
3.2.3.1
Mapping Metadata
3.2.3.2
Cache
3.2.3.3
Queries and Expressions
3.3
About Persisting Objects
3.3.1
Application Object Model
3.3.2
Data Storage Schema
3.3.3
Primary Keys and Object Identity
3.3.4
Mappings
3.3.5
Foreign Keys and Object Relationships
3.3.6
Inheritance
3.3.7
Concurrency
3.3.8
Caching
3.3.9
Nonintrusive Persistence
3.3.10
Indirection
3.3.11
Mutability
3.4
Migrating Applications to the EclipseLink Persistence Manager
3.5
About Weaving
3.5.1
Using Dynamic Weaving
3.5.2
Using Static Weaving
3.5.3
Weaving POJO Classes
3.5.4
Weaving and Java EE Application Servers
3.5.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
4.8
Extensible Entities
5
Understanding Descriptors
5.1
Common Descriptor Concepts
5.1.1
Descriptor Architecture
5.1.2
Descriptors and Inheritance
5.1.2.1
Specifying a Class Indicator
5.1.2.2
Inheritance and Primary Keys
5.1.2.3
Single and Multi-Table Inheritance
5.1.2.4
Aggregate and Composite Descriptors and Inheritance
5.1.3
Descriptors and Aggregation
5.1.4
Descriptor Customization
5.1.5
Amendment Methods
5.1.6
Descriptor Event Manager
5.2
Object-Relational Descriptor Concepts
5.2.1
Fetch Groups
5.2.1.1
AttributeGroup Types and Operations
5.2.1.2
FetchGroup
5.2.1.3
Default FetchGroup
5.2.1.4
Named FetchGroup
5.2.1.5
Full FetchGroup
5.2.1.6
Load/LoadAll with FetchGroup
5.2.1.7
LoadGroup
5.2.1.8
CopyGroup
5.2.1.9
Merging
5.2.2
Descriptor Query Manager
5.2.3
Descriptors and Sequencing
5.2.4
Descriptors and Locking
5.2.4.1
Optimistic Version Locking Policies
5.2.4.2
Pessimistic Locking Policies
5.2.4.3
Applying Locking in an Application
5.3
Descriptor Files
5.3.1
Using orm.xml for Object-Relational Mappings
5.3.2
Using eclipselink-orm.xml for EclipseLink Object-Relational Mappings
5.3.2.1
Overriding and Merging Mapping Information
5.3.2.2
Validating the XML Schema
5.3.2.3
Advantages and Disadvantages of Using XML
5.3.3
Using eclipselink-oxm.xml for EclipseLink MOXy Mappings
6
Understanding Mappings
6.1
Common Mapping Concepts
6.1.1
Mapping Architecture
6.1.2
Mapping Examples
6.1.3
Mapping Converters
6.1.3.1
Serialized Object Converter
6.1.3.2
Type Conversion Converter
6.1.3.3
Object Type Converter
6.1.4
Transformation Mapping
6.2
Object-Relational Mapping Concepts
6.2.1
Indirection (Lazy Loading)
6.2.2
Indirection, Serialization, and Detachment
6.2.3
Value Holder Indirection
6.2.4
Transparent Indirection
6.2.5
Proxy Indirection
6.2.5.1
Proxy Indirection Restrictions
6.2.6
Weaved Indirection
6.2.7
About JPA Mapping Types
6.2.7.1
Basic Mappings
6.2.7.2
Default Conversions and Converters
6.2.7.3
Collection Mappings
6.2.7.4
Using Optimistic Locking
6.3
MOXy Mapping Concepts
6.3.1
Understanding an XML Data Representation
6.3.2
Mapping Values
6.3.3
Marshalling and Unmarshalling a Subset of Attributes in MOXy
6.3.4
@XmlInverseReference is Writable in Both Directions
6.4
Object-JSON Mapping Concepts
6.4.1
Collection Mapping to both XML and JSON
6.5
About JSON with Padding
6.6
Extending JAX-RS Implementations
7
Understanding Data Access
7.1
About Externally Managed Transactional Data Sources
7.2
About Data Source Login Types
7.3
About Data Source Platform Types
7.4
About Authentication
7.4.1
Simple JDBC Authentication
7.4.2
Oracle Database Proxy Authentication
7.4.3
Auditing
7.5
About Connections
7.6
About Connection Pools
7.6.1
Internal Connection Pools
7.6.2
External Connection Pools
7.6.3
Default (Write) and Read Connection Pools
7.6.4
Sequence Connection Pools
7.6.5
Application-Specific Connection Pools
7.7
About Data Partitioning Policies
7.8
About Tenant Isolation
7.8.1
Single Table Multi-Tenancy
7.8.2
Table-Per-Tenant Multi-Tenancy
7.8.3
VPD Multi-Tenancy
7.9
About Heterogeneous Batch Writing
7.10
About Serialized Object Policy
7.11
About Auto-tuning
7.12
About TopLink Data Services Live Data
7.12.1
Server Sent Event and WebSocket Support for Notification Delivery
8
Understanding Caching
8.1
About Cache Architecture
8.1.1
Persistence Unit Cache
8.1.2
Persistence Context Cache
8.1.2.1
Application Managed Persistence Contexts
8.1.2.2
Container Managed Persistence Contexts
8.1.3
Shared, Isolated, Protected, Weak, and Read-only Caches
8.1.3.1
Isolated Cache
8.1.3.2
Shared Cache
8.1.3.3
Protected Cache
8.1.3.4
Weak Reference Mode
8.1.3.5
Read-Only Entities
8.2
About Cache Type and Size
8.2.1
FULL Cache Type
8.2.2
WEAK Cache Type
8.2.3
SOFT Cache Type
8.2.4
SOFT_WEAK and HARD_WEAK Cache Type
8.2.5
NONE and CACHE
8.2.6
Guidelines for Configuring the Cache and Identity Maps
8.2.6.1
About the Internals of Weak, Soft, and Hard Cache Types
8.3
About Queries and the Cache
8.3.1
About Query Cache Options and In-memory Querying
8.4
About Handling Stale Data
8.4.1
Configuring a Locking Policy
8.4.1.1
Optimistic Locking
8.4.1.2
Pessimistic Locking
8.4.2
Configuring the Cache on a Per-Class Basis
8.4.3
Forcing a Cache Refresh when Required on a Per-Query Basis
8.4.4
Configuring Cache Invalidation
8.4.5
Configuring Cache Coordination
8.5
About Explicit Query Refreshes
8.6
About Cache Indexes
8.7
Database Event Notification and Oracle CQN
8.7.1
Oracle Continuous Query Notification
8.8
About Query Results Cache
8.9
About Cache Coordination
8.9.1
When to Use Cache Coordination
8.10
Clustering and Cache Coordination
8.10.1
Coordinating JMS and RMI Caches
8.10.2
Coordinating Custom Caches
8.11
Clustering and Cache Consistency
8.12
Cache Interceptors
8.13
Using Coherence Caches
9
Understanding Queries
9.1
Query Concepts
9.1.1
Call Objects
9.1.2
DatabaseQuery Objects
9.1.3
Data-Level and Object-Level Queries
9.1.4
Summary Queries
9.1.5
Descriptor Query Manager
9.1.6
Query Keys
9.2
About JPQL Queries
9.2.1
EclipseLink Extensions to JPQL
9.2.2
EclipseLink Special Operators in JPQL
9.3
About SQL Query Language
9.3.1
Stored Procedures
9.3.1.1
EclipseLink Extensions to Stored Procedures
9.4
About the Criteria API
9.4.1
EclipseLink Extensions to the Criteria API
9.5
About Native SQL Queries
9.5.1
EclipseLink Extensions to Native Query Support
9.6
About Query Hints
9.6.1
JPA Cache Query Hints
9.6.2
EclipseLink Extensions to Cache Query Hints
9.7
About Query Casting
9.7.1
EclipseLink Expression Support for Downcasting
9.8
About Oracle Extensions for Queries
9.8.1
Query Hints
9.8.2
Hierarchical Queries
9.8.3
Flashback Queries
9.8.4
Stored Functions
10
Understanding EclipseLink Expressions
10.1
About the Expression Framework
10.2
About Expression Components
10.2.1
Boolean Logic
10.2.2
Database Functions and Operators
10.2.2.1
Oracle XMLType Functions
10.2.3
Platform and User-Defined Functions
10.2.4
Expressions for One-to-One and Aggregate Object Relationships
10.2.5
Expressions for Joining and Complex Relationships
10.2.5.1
About Joins
10.2.5.2
Using EclipseLink Expression API for Joins
11
Understanding Non-relational Data Sources
11.1
NoSQL Platform Concepts
11.2
About NoSQL Persistence Units
11.2.1
Persistence Unit Properties for NoSQL Platforms
11.3
About JPA Applications on the NoSQL Platform
11.3.1
Mapping Restrictions on JPA Annotations
11.4
About Mapping NoSQL Objects
11.5
About Queries and the NoSQL Platform
11.6
About Transactions and the NoSQL Platform
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.