Red Hat Certificate of Expertise in Persistence Exam (EX297)

Course Description Schedule

Who should attend

  • Experienced Java application developers and architects.
  • Business component and database developers.


  • Have taken the JBoss Development: Persistence with Hibernate (JB297) course or have extensive work experience with JPA and Hibernate
  • Have familiarity working in a Red Hat Enterprise Linux environment
  • Review the Red Hat Certificate of Expertise in Persistence exam (EX297) objectives

Recommended Training

Course Objectives

You should be able to perform the following tasks:

Configure JPA/Hibernate

  • Configure PersistenceUnit properties, including:
    • Location of configuration files
    • Java EE-specific configuration details
    • Java SE-specific configuration details
    • Hibernate-specific configuration details
  • Connect to a PersistenceUnit from a Java SE application
  • Connect to a PersistenceUnit from a Java EE application
  • Override PersistenceUnit default property values

Map a single table or object

  • Understand the behavior of the id generators, including how and when the value is generated
  • Understand how to map a primary key, including:
    • Using generated keys
    • Mapping simple business keys
    • Mapping compound keys
  • Understand object identity and business equivalence
  • Configure database-specific information, such as table name, column name, column width, and column attributes (nullable, unique, type, and so on)
  • Convert an existing Java object into a persistent object using JPA/Hibernate
  • Map basic JPA data types to corresponding database types
  • Given an existing database table, create a new persistent Java object to map that table
  • Understand how and when to use lazy versus eager loading
  • Understand and use optimal mapping strategies for collections and value types
  • Handle Java/object model-specific properties and behaviors in a persistent object. This includes:
    • Serialization
    • Transient properties
    • Generated and calculated properties
    • Immutable properties
    • Value types
    • Co-dependent properties (i.e. where a property's valid values depend on the value of another property)

Map object relationships with JPA/Hibernate

  • Understand how to map relationships, including but not limited to:
    • Value relationships (for example, has-a details object)
    • Parent/child relationships
    • One-to-one relationships (both unidirectional and bidirectional)
    • Many-to-one and one-to-many relationships (both unidirectional and bidirectional)
    • Many-to-many relationships (both unidirectional and bidirectional)
  • Understand default mapping behaviors, including but not limited to:
    • Foreign key names
    • Association table names
  • Understand the use of foreign keys and join tables when creating relationships
  • Understand how to map a compound primary key based on the relationship
  • Understand JPA/Hibernate collections (sets, maps lists, and bags) and how they map to object and table relationships
  • Understand the performance impacts of the different collections
  • Understand how and when to use lazy versus eager loading, including the performance and code impacts of both
  • Given a set of existing tables and relationships, create a persistent Java object graph matching the database
  • Map an existing object model, including various associations, to a persistence store
  • Determine optimal loading strategies for a given business process

Map hierarchical object relationships with JPA/Hibernate

  • Understand how to represent different object hierarchies using JPA/Hibernate
  • Convert an existing Java object hierarchy to persistent objects using JPA/Hibernate
  • Represent an existing set of table relationships as an object hierarchy (for example, savings account, credit card, and loan account)
  • Understand polymorphic queries and associations
  • Understand the benefits and limitations of the different inheritance strategies
  • Analyze and determine optimal database representations for different object hierarchies

Understand transactional behavior (ACID)

  • Acquire and use a transaction context under:
    • Java EE/CMT
    • Java EE/BMT
    • Java SE using JPA APIs
  • Understand how the persistence context is bound to the transaction in Java EE
  • Understand transactional context propagation with EJB3
  • Understand the consequences of a transaction rollback at the persistence context level
  • Understand transactional concurrency risks
  • Evaluate data loss/corruption versus performance trade-offs

Retrieve persistent objects

  • Understand JPA/Hiibernate loading strategies:
    • Lazy loading
    • Subselect loading
    • Batch loading
  • Understand and use advanced query options:
    • HQL/JPA QL
    • Criteria APIs
    • Native queries (SQL)
  • Use the runtime eager fetching feature
  • Use named parameters
  • Anticipate and avoid LazyInitializationException
  • Analyze and improve JPA/Hibernate performance
  • Understand and use JPA optimistic locking and Hibernate pessimistic locking extended features

Manipulating persistent objects

  • Understand entity states, such as:
    • transient
    • persistent
    • attached
    • detached
    • removed
  • Understand how to change the state of an entity/entity graph using JPA APIs
  • Understand the lifecycle of the persistence context and its impact on the entities being managed
  • Apply JPA/Hibernate batching features:
    • API usage patterns
    • DML queries
  • Determine and apply optimal implementation and cascade settings to manipulate an object graph
  • Evaluate when to use batching

Course Content

The Red Hat Certificate of Expertise in Persistence exam tests whether candidates are ready for the real-world responsibilities of creating and maintaining Java™ applications that use the Java Persistence API (JPA) with JBoss® Hibernate®.

The Red Hat® Certificate of Expertise in Persistence exam credential demonstrates an individual's readiness for the real-world tasks associated with using the Java™ Persistence API (JPA) with JBoss Hibernate. The JPA is a Java programming language framework for managing relational data, and Hibernate is a high-performance object-relational persistence and query service that implements the JPA.

Classroom Training
Price (excl. tax)
  • Germany: 500.- €
  • Switzerland: 500.- €
  • Red Hat Training Units: 2 RTU
Dates and Booking

Currently there are no training dates scheduled for this course. Training date request