COMPLETE HIBERNATE WORKSHOP

Course Description  
This course teaches students the most popular object-relational mapping framework for Java environments. Object relational mapping in large enterprise applications is difficult. The task is so difficult that the problem of storing and retrieving objects to a relational database has its own name – impedance mismatch. In this class, students learn object-relational mapping concepts and the various issues and options available in Java to address object persistence. With these fundamentals, the course then explores the basics of Hibernate object persistence and configuration. It also digs into the details of Hibernate mapping, queries, transactions, and concurrency. After taking this class, developers will be able to build faster, more flexible and easier to maintain application persistence layers and overcome impedance mismatch with the Hibernate framework.

Course Length: 4 Days
Course Tuition: $1390 (US)
Prerequisites
A good understanding of the Java programming language is required. A basic understanding of relational databases and SQL is very helpful.
Course Outline  


• Object Persistence
Persistence
Object Persistence
Object/Relational Paradigms
Impedance Mismatch
Object Relational Mapping ()ORM)
Persistent Framework
Hibernate
Java ORM/Persistent Frameworks

• Hibernate Architecture
Hibernate Architecture and PI
Hibernate Installation/Setup
Configuration
Configuration Properties
Mapping Files

• Persistent Classes
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 Stat
Persistent State
Persistent Object Updates and Automatic Dirty Checking
Detached 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

• More 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
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
HQL Parameters
Named Queries
Native SQL

• Criteria
Hibernate 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

• Appendix A: Fetching Strategies
N + 1 Selects
Fetching Strategies
Join Fetching
Subselect Fetching
Batch Fetching
Queries and Fetching Strategies
Cartesian Product Problem

• Appendix B: Cache
The Promise of Cache
Hibernate Caching Architecture
First Level Cache
Second Level Cache
Cache Concurrency
Configuring Second Level Cache
Cache Regions
Eviction

• Appendix C: Annotations
Metadata
Annotations Pros/Cons
Configuring Hibernate Annotations
EJB3/JPA Annotations
Entity Annotations
Embedded Object (Component) Annotations
Inheritance Annotations
One-to-one Association Annotations
Many-to-one Association Annotations
Many-to-many Association Annotation
Query Annotations
Hibernate Annotations

Contact us for course schedules or more information.





Questions? Call Today!
800-735-7418