Opsgility Official Training

Red Hat Certificate Of Expertise In Persistence Exam Ies (Ex297K)

Red Hat Certificate Of Expertise In Persistence Exam Ies (Ex297K)

Students in a classroom-min

Course Description

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. 

About this course

Who Needs to Attend

  • Experienced Java application developers and architects
  • Business component and database developers Prerequisites
  • 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



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

  1. 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 
  1. 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 
  1. 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 
  1. Retrieve persistent objects 
  • Understand JPA/Hibernate loading strategies: 

◦ Lazy loading 

◦ Subselect loading 

◦ Batch loading 

  • Understand and use advanced query options: 


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

Ready to get started?