Prerequisites:
The prerequisite skills for this class are the following:
Basic Hibernate knowledge.
Competency with the Java language
Knowledge of OOAD concepts
Familiarity with the UML
Experience with a dialect of SQL.
Using the JDK and creating the necessary environment for
compilation and execution of a Java executable from the command
line.
Experience with, or comprehensive knowledge of JNDI and JDBC.
Entity EJB2.1 or EJB3.0 knowledge, while not a prerequisite, is
helpful. Prior reading of the book Hibernate in Action, by
Christian Bauer and Gavin King (published by Manning) is
recommended
Course Description:
The Advanced Hibernate course is recommended for individuals who
are familiar with Hibernate and wish to become experts on Hibernate
3. The Advanced Hibernate course fills a two-day specialty training
credit for the Middleware Track, and may be applied to the required
number of training days for Certified JEMS Middleware Expert and
Certified JEMS Master Architect levels.
Please notice that for people new to Hibernate, the Hibernate
Essentials class is recommended before attending the Advanced
Hibernate course.
Advanced Hibernate training is targeted toward Java developers
who wish to extract the full power of the Hibernate O/R Mapping
framework. The primary target audience consists of Java developers
who work with SQL-based database systems, database developers who
are looking for an introduction to object-oriented software
development and database administrators interested in how ORM
affects performance and how to tune the performance of the SQL
database management system and persistence layer. The training
covers the new Hibernate 3 features
This course includes the following modules:
Flashback
- We kick off this training with a quick Hello World example, to
refresh our Hibernate basics. Right after this we delve into more
advanced topics
Advanced class and property mappings
- We have a look at the different mapping metadata facilities
available for and in Hibernate. The standard XML mapping files are
discussed, as well as XDoclet and JDK 1.5 Annotations for EJB
persistence. Hibernate?ᨕs mapping type system is an important
supporting feature for fine-grained Java domain models and
you?ᨕll learn how best design your persistent classes. We talk
about the built-in mapping strategies for entities, simple value
types, and class inheritance. Custom extension of the Hibernate
type system is another topic in this training module.
Associations and collections
- Complex associations between entities, singlevalued and with
collections, often require advanced Hibernate mapping knowledge. We
discuss various kinds of mappings, as well as Hibernate?ᨕs fully
polymorphic behavior. We then apply this knowledge in our lab
exercise.
Transactional processing
- Hibernate defines several object states and provides APIs to
change the state of an object. We show you how to use these APIs
correctly, even in tricky situations. You will use Hibernate data
filters to access regional and temporal data. We have a look at
more advanced transaction processing concepts around optimistic
locking, pessimistic locking, and longrunning application
transactions
Querying and fetching data
- Advanced object retrieval options and the correct usage of
Hibernate?ᨕs association fetching strategies are the topics of
this training module. The new Criteria and Example API is also part
of our discussion, as well as advanced HQL, EJB-QL (using the new
EJB 3.0 persistence API), and native SQL queries. The lab includes
exercises around loading and storing objects efficiently
Application design
- A popular part of the Hibernate training, this module shows you
how to design and implement a persistence layer using Hibernate.
You will learn how to correctly handle SessionFactory and Session
in two-tiered and three-tiered applications, and the best practices
for transaction handling. You will implement event interception in
the persistence layer, for audit logging and other special cases.
You might also be interested in Hibernate?ᨕs data conversion
capabilities, for automatic XML marshaling, or the representation
of domain objects in nested HashMaps
Legacy system integration
- Many Hibernate developers have to work with existing database
schemas and existing data. Unfortunately, these schemas are usually
not in best shape, and the data might be difficult to map to Java
objects. We discuss reverse engineering using the Hibernate
toolset, as well as advanced Hibernate mapping techniques, such as
formula-based mappings, natural- and composite keys, and
triggers
Deeployment and administration
- Getting Hibernate up and running is usually very easy, and
deployment requires only a single configuration in most cases. We
show you more advanced configuration options and tricks in this
training module, including deployment of Hibernate as a JMX and JCA
service in J2EE environments. Once your application is deployed,
administration becomes an important issue. You will learn how to
use logging efficiently and how to detect performance issues using
runtime monitoring with the new statistics interfaces
Tuning
- In our last training module we?ᨕll optimize database access
our goal is to execute the optimal SQL queries in all situations.
You will learn data caching basics and when to use caching. We then
enable Hibernate?ᨕs dual layer caching system in our labs, as
well as the cache for query results