JB267 - JBoss - Advanced Hibernate
Course Summary
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.
RHD267 - JBoss - Advanced Hibernate Description
Description:
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.
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.
7 TUs
Duration:
2 days ( 16 Hrs. )
RHD267 Course Content
The following is an outline of the skills and knowledge represented
in the training elements of the RHD267 JBoss - Advanced Hibernate
Course.
Note: Technical content subject to change without
notice. Significant changes in course content will generally be
available in posted outlines at least two months prior to being
implemented in scheduled courses, to allow enrolled students adequate
prep time. Reload this page regularly to insure up-to-date information.
Course content
- 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.
- Deployment 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.