Training related
Recent Posts » Feed
- JSF 2 can finally be used in cluster environments » 23 Aug 2010
- Imagine the web improves on 11.11.11 » 15 Jul 2010
- Hibernate Training Update » 20 Apr 2010
- Blogging like a developer » 24 Feb 2010
- Window Id - Practical use cases » 18 Jan 2010
- GWT tip - better exception logging on the server » 18 Dec 2009
- Oh JavaFX, Oh JavaFX - why don't you progress? » 01 Dec 2009
- Devoxx 2009 Presentation - Selecting Web Technologies » 18 Nov 2009
- Window id - browser extension » 13 Nov 2009
Professional Hibernate Training
Description
The training provides a very complete coverage of Hibernate. It explains advanced features of Hibernate, provides the participant with a deep knowledge of Hibernate concepts. 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?
Check our regular schedule or ask for 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 jobsAnalysing 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.
