Course Objective
Learn the architecture of Hibernate
Know how to setup and configure Hibernate for a Java project
Learn to map Java classes and object associations to relational database tables with Hibernate mapping files
Study Hibernate’s strategies for mapping Java inheritance trees to relational database tables
Learn the Hibernate Query Language and Criteria for retrieving Java objects
Explore Hibernate’s Caching Architecture.
Course Syllabus
Object Persistence
Object/Relational Paradigms
O/R Mismatch
Object Relational Mapping (ORM)
Java ORM/Persistent Frameworks
Hibernate Architecture
Hibernate Architecture and API
Hibernate Installation/Setup
Configuration
Configuration Properties
Mapping Files
Persistent Classes
POJOs
JavaBeans
Basic Mapping
Class to Table Mappings
Property Mapping
Identifiers
Generators
Natural Keys
Identifier Exposure
Quoting SQL Tables and Columns
Working with Persistent Objects
Entity Lifecycle
Transient State
Persistent State
Persistent Object Updates and Automatic Dirty Checking
Detatched State
Deleted
Object Identifiers Revisited
Merge
Components
Domain Model
Entities and Values
Components
Associations
Many-to-one
Bidirectional Many-to-one
Other Collections
Many-to-one List
Many-to-one Map
Many-to-one Bag
Many-to-one Array
Other Associations
One-to-one
Bidirectional One-to-one
Many-to-many
Bidirectional Many-to-many
Many-to-many Identifier Bag
Value Type Collections
Collections of Value Types
Collections of Components
Sorting Collections
Inheritance
Inheritance Mapping Strategies
Table per concrete class
Table per subclass
Table per hierarchy
Inheritance Mapping Pros/Cons
Polymorphism
Table per concrete class with unions
Choosing an Inheritance Strategy
Transitive Persistence
Lazy Loading
Proxies
Eager Loading
What’s a Proxy?
Detached Objects and Proxies
Polymorphic Associations Revisited
Custom Mapping
Custom Mapping Types
UserType
Enumerations
HQL
Hibernate Object Fetching Options
Hibernate Query
HQL Parameters
Named Queries
Native SQL
Criteria
Restrictions
Query By Example
Scrolling
Pagination
Query Hints
Query Option Pros/Cons
Transactions and Concurrency
The Java Transaction
Hibernate Transaction Configuration
Hibernate Transaction API
Concurrency
Isolation Levels
Optimistic Locking
Versioning
Optimistic Locking without Versioning
Pessimistic Locking


