Advanced Java Persistence Training – 3 days
Description
Possible training language: English, German
The training provides a very complete coverage of Java Persistence. It explains advanced features of Java Persistence, provides the participant with a deep knowledge of Java Persistence concepts. Topics like performance, clustering and best practices are covered.
After the training the student is ready to develop Hibernate based applications, integrate existing databases and craft powerful architectures in different environments. The student is provided with a rich tool set to common problems and can balance pros and cons in different situations.
The training covers 3 days and includes a large number of practical labs including a complete web application, which is analysed and optimized.
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 and architects with a good understanding of Hibernate and project experience, needing to validate their experience, to detail their knowledge and looking for new and advanced strategies in Hibernate.
Provided material
Printed copy of slides
eBook Hibernate Developer Guide (Author Sebastian Hennebrueder)
Table of Content
Day One
1 Introduction
- Choosing the correct approach (Hibernate, Java persistence and EJB 3)
- What’s new in Java Persistence 2.0?
2 Mapping of properties
- Advanced concepts, details of standard approaches
- Lazy properties
- Dynamic inserts, updates
- Byte code Instrumentation
- Entities versus Value types
- Custom Types
- 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
- Save, update, delete
- Reattaching with update, merge, lock
- Lab – Working with objects
5 Reverse and Forward Engineering
- Hibernate Tools
- UML Tools
6 Configuration
- JDBC settings
- Session and Transaction behaviour
7 Relations
- Mapping Overview
- Best practices in relationship handling
- Performance considerations
- Working with Relations
- Efficiently working with relations – Cascading
- Lab – Working with relations
8 Querying
- Aggregation like sum, average, count, min, max
- Sorting
- Reporting queries
- Joins
- Subqueries and detached queries
- Querying of Relations
- SQL Queries
- Named Queries
- Lab – Querying
Day Two
9 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
10 Inheritance
- Strategies
- Performance considerations
- Lab – Inheritance
11 Understanding Hibernate Concepts – Hibernate Session
12 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
13 Concurrent Access
- Optimistic locking
- Pessimistic locking
14 Full Text Search
- Lucene and alternatives
- Lab – Full Text Search
15 Legacy Applications
- Integrating existing databases and applications
- Primary Keys
* Generation strategies and pitfalls
* Composite Primary Keys
* Advanced strategies to solve primary key problems
- Mapping
- Inheritance
- Trigger
- Stored Procedure
- Concurrent access
- Optimistic locking with legacy databases
- Lab – Legacy Integration
Day Three
16 Architecture
- Integration
* Web frameworks (JSF, Struts 2, Stripes, Tapestry)
* AOP Spring, Google Guice
* EJB 3 - 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
* Extended Session Handling strategies - Distributed applications
* DTOs Data Transfer Objects
* Pros and Cons of Mapping approaches
* Dealing with proxies
* Call by Value strategies
17 Interceptors and Events
- Hibernate Events
- Java Persistence Events
- Lab – Writing an Event Listener
18 Performance
- Cache
- Clustering
- Performance strategies by use case
Batch updates, inserts, import jobs, export jobs
- Analysing performance issues
- Tuning loading of objects and relations
- New: Fetch profiles to optimize data loading
- Lab – Performance
19 Tuning a full web application
Practical session where the student completes a full web application, analyses performance issues and applying a number of tuning strategies practices and design pattern he has learned during the training.