Live Chat
Monday - Friday 8am - 6pm EST Chat Now
Contact Us
Monday - Friday 8am - 8pm EST 1-800-268-7737 Other Contact Options

Cart () Loading...

    • Quantity:
    • Delivery:
    • Dates:
    • Location:


Red Hat Certificate of Expertise in Persistence Exam IES (EX297K)

GK# 1327 Vendor# EX297K

Course Overview


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.

Access to documentation during the exam will be limited to the official JBoss Enterprise Application Platform documentation for the version being tested plus any sample files or additional documentation included with the product. We will not strip anything out that is normally included.

Please note that you will not have access to the or wikis. While these wikis are useful resources and include content that may be relevant to the exam, the wiki format makes it inappropriate for access during an exam. We want to test you, not the people reading and updating the wiki.

You will not be permitted to bring any hard-copy or electronic documentation into the exam. This prohibition includes notes, books, or any other materials. Internet access will be strictly controlled. Keep these restrictions in mind as you study.


Red Hat® Certificate of Expertise in Persistence


  • Delivery Format:
  • Date:
  • Location:
  • Access Period:



Viewing outline for:

On-Demand Outline

1. 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

2. 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)

3. 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

4. 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

5. 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

6. Retrieve persistent objects

  • Understand JPA/Hibernate 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

7. 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


  • Red Hat recommends that candidates for this exam earn Red Hat Certified JBoss Developer (RHCJD) before attempting this exam, but it is not required
  • Have taken the JBoss Hibernate Technology (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

Who Should Attend

  • Experienced Java application developers and architects
  • Business component and database developers
Course Delivery

This course is available in the following formats:


Train at your own pace with 24/7 access to courses that help you acquire must-have technology skills.

Request this course in a different delivery format.