Part 2. Java Persistence API

Table of Contents

1. Introduction
1.1. Intended Audience
1.2. Lightweight Persistence
2. Why JPA?
3. EJB Persistence Architecture
3.1. EJB Exceptions
4. Entity
4.1. Restrictions on Persistent Classes
4.1.1. Default or No-Arg Constructor
4.1.2. Final
4.1.3. Identity Fields
4.1.4. Version Field
4.1.5. Inheritance
4.1.6. Persistent Fields
4.1.7. Conclusions
4.2. Entity Identity
4.2.1. Identity Class
4.2.1.1. Identity Hierarchies
4.3. Lifecycle Callbacks
4.3.1. Callback Methods
4.3.2. Using Callback Methods
4.3.3. Using Entity Listeners
4.3.4. Entity Listeners Hierarchy
4.4. Conclusions
5. Metadata
5.1. Class Metadata
5.1.1. Entity
5.1.2. Id Class
5.1.3. Mapped Superclass
5.1.4. Embeddable
5.1.5. EntityListeners
5.1.6. Example
5.2. Field and Property Metadata
5.2.1. Transient
5.2.2. Id
5.2.3. Generated Value
5.2.4. Embedded Id
5.2.5. Version
5.2.6. Basic
5.2.6.1. Fetch Type
5.2.7. Embedded
5.2.8. Many-To-One
5.2.8.1. Cascade Type
5.2.9. One-To-Many
5.2.9.1. Bidirectional Relations
5.2.10. One-To-One
5.2.11. Many-To-Many
5.2.12. Order By
5.2.13. Map Key
5.2.14. Persistent Field Defaults
5.3. XML Schema
5.4. Conclusion
6. Persistence
6.1. persistence.xml
6.2. Non-EE Use
7. EntityManagerFactory
7.1. Obtaining an EntityManagerFactory
7.2. Obtaining EntityManagers
7.3. Persistence Context
7.3.1. Transaction Persistence Context
7.3.2. Extended Persistence Context
7.4. Closing the EntityManagerFactory
8. EntityManager
8.1. Transaction Association
8.2. Entity Lifecycle Management
8.3. Lifecycle Examples
8.4. Entity Identity Management
8.5. Cache Management
8.6. Query Factory
8.7. Closing
9. Transaction
9.1. Transaction Types
9.2. The EntityTransaction Interface
10. JPA Query
10.1. JPQL API
10.1.1. Query Basics
10.1.2. Relation Traversal
10.1.3. Fetch Joins
10.1.4. JPQL Functions
10.1.5. Polymorphic Queries
10.1.6. Query Parameters
10.1.7. Ordering
10.1.8. Aggregates
10.1.9. Named Queries
10.1.10. Delete By Query
10.1.11. Update By Query
10.2. JPQL Language Reference
10.2.1. JPQL Statement Types
10.2.1.1. JPQL Select Statement
10.2.1.2. JPQL Update and Delete Statements
10.2.2. JPQL Abstract Schema Types and Query Domains
10.2.2.1. JPQL Entity Naming
10.2.2.2. JPQL Schema Example
10.2.3. JPQL FROM Clause and Navigational Declarations
10.2.3.1. JPQL FROM Identifiers
10.2.3.2. JPQL Identification Variables
10.2.3.3. JPQL Range Declarations
10.2.3.4. JPQL Path Expressions
10.2.3.5. JPQL Joins
10.2.3.5.1. JPQL Inner Joins (Relationship Joins)
10.2.3.5.2. JPQL Outer Joins
10.2.3.5.3. JPQL Fetch Joins
10.2.3.6. JPQL Collection Member Declarations
10.2.3.7. JPQL Polymorphism
10.2.4. JPQL WHERE Clause
10.2.5. JPQL Conditional Expressions
10.2.5.1. JPQL Literals
10.2.5.2. JPQL Identification Variables
10.2.5.3. JPQL Path Expressions
10.2.5.4. JPQL Input Parameters
10.2.5.4.1. JPQL Positional Parameters
10.2.5.4.2. JPQL Named Parameters
10.2.5.5. JPQL Conditional Expression Composition
10.2.5.6. JPQL Operators and Operator Precedence
10.2.5.7. JPQL Between Expressions
10.2.5.8. JPQL In Expressions
10.2.5.9. JPQL Like Expressions
10.2.5.10. JPQL Null Comparison Expressions
10.2.5.11. JPQL Empty Collection Comparison Expressions
10.2.5.12. JPQL Collection Member Expressions
10.2.5.13. JPQL Exists Expressions
10.2.5.14. JPQL All or Any Expressions
10.2.5.15. JPQL Subqueries
10.2.5.16. JPQL Functional Expressions
10.2.5.16.1. JPQL String Functions
10.2.5.16.2. JPQL Arithmetic Functions
10.2.5.16.3. JPQL Datetime Functions
10.2.6. JPQL GROUP BY, HAVING
10.2.7. JPQL SELECT Clause
10.2.7.1. JPQL Result Type of the SELECT Clause
10.2.7.2. JPQL Constructor Expressions
10.2.7.3. JPQL Null Values in the Query Result
10.2.7.4. JPQL Aggregate Functions
10.2.7.4.1. JPQL Aggregate Examples
10.2.8. JPQL ORDER BY Clause
10.2.9. JPQL Bulk Update and Delete
10.2.10. JPQL Null Values
10.2.11. JPQL Equality and Comparison Semantics
10.2.12. JPQL BNF
11. SQL Queries
11.1. Creating SQL Queries
11.2. Retrieving Persistent Objects with SQL
12. Mapping Metadata
12.1. Table
12.2. Unique Constraints
12.3. Column
12.4. Identity Mapping
12.5. Generators
12.5.1. Sequence Generator
12.5.2. TableGenerator
12.5.3. Example
12.6. Inheritance
12.6.1. Single Table
12.6.1.1. Advantages
12.6.1.2. Disadvantages
12.6.2. Joined
12.6.2.1. Advantages
12.6.2.2. Disadvantages
12.6.3. Table Per Class
12.6.3.1. Advantages
12.6.3.2. Disadvantages
12.6.4. Putting it All Together
12.7. Discriminator
12.8. Field Mapping
12.8.1. Basic Mapping
12.8.1.1. LOBs
12.8.1.2. Enumerated
12.8.1.3. Temporal Types
12.8.1.4. The Updated Mappings
12.8.2. Secondary Tables
12.8.3. Embedded Mapping
12.8.4. Direct Relations
12.8.5. Join Table
12.8.6. Bidirectional Mapping
12.8.7. Map Mapping
12.9. The Complete Mappings
13. Conclusion

 

Skip navigation bar   Back to Top