Hibernate Training – 3 days
Description
Possible training language: English, German
The training is a solid introduction to Hibernate. It explains most features of Hibernate and provides the participant with a good knowledge of Hibernate concepts. After the training the student is ready to develop Hibernate based applications, is aware of common pitfalls and has a general knowledge about architecture.
The training covers 3 days and includes a large number of practical labs including a complete prototype web application.
Your trainer is Sebastian Hennebrueder.
How to book?
Contact me for a training in Frankfurt/Germany or an onsite trainings in your office.
Duration 3 days – 18 hours
Price net 1725 EUR, Price incl. VAT 2052.75 EUR
Target Customer
Java developers who have limited or no experience with Hibernate needing a complete and solid training. Java knowledge and experience with JDBC based application is required.
Provided material
Printed copy of slides
eBook Hibernate Developer Guide (Author Sebastian Hennebrueder)
Table of Content …
Day One
1 Introduction
- Object relational mapping
- Java persistence
2 Mapping of properties
- Annotation versus XML Mapping
- ID columns
- Property mapping
- Components
- Lab – Mapping of properties
3 Understanding Hibernate Concepts – State of objects
- Database identity versus Java identity
- equals and hashcode
4 Working with Objects
- Java Persistence and Hibernate compared
- Tools for Hibernate development
- Save, update, delete
- Reattaching with update, merge, lock
- Querying
* Criteria queries and HQL queries
* Where conditions - Lab – Working with objects
5 Configuration
- Connection Pool
* Application connection pools, container connection pools, JNDI
- JDBC settings
- Session and Transaction behaviour
6 Relations
- Mapping
* List, Set, Map or Array
* 1:1, 1:n, m:n, 1:n:1, recursive relations - Working with Relations
- Efficiently working with relations – Cascading
- Lab – Working with relations
Day Two
7 Querying
- Aggregation like sum, average, count, min, max
- Sorting
- Reporting queries
- Joins
- Querying of Relations
- Lab – Querying
8 Understanding Hibernate Concepts – Lazy loading
- The lazy initialization problem
- Eager and Lazy loading
- Changing the load behaviour in the mapping
- Using queries to initialize data
- Choosing strategies
- Lab – Lazy Loading
9 Inheritance
- Strategies
- Lab – Inheritance
10 Understanding Hibernate Concepts – Hibernate Session
11 Transaction and Exception handling
- Proper exception handling
- Exception handling with AOP, EJB 3
- Exception handling with web frameworks (JSF, Struts 2, Stripes, Tapestry)
- Transaction handling
- programmatically
- declarative with AOP (Spring, Google Guice) or EJB 3
12 Concurrent Access
- Optimistic locking
- Lab – Optimistic locking
Day Three
13 Architecture
- DAO – Data Access Objects
- Writing DAO
- Granularity – DAO per class, per use case, per ?
- Persistent Domain Objects
- Encapsulating business logic
- Guaranty consistency
- Session life time
- Session per Transaction
- Open Session In View (traditional)
- Open Session In View 2.0
14 Testing
- Testing tools
- How to test?
- What to test?
15 Writing a prototype application
Practical session where the student completes a full web application applying a number of best practices and design pattern he has learned during the training.