COURSE OBJECTIVE:
Course Objectives This course aims to provide the delegate with the knowledge to be able to develop (or contribute to the development of) enterprise-level Java applications that use JPA and Hibernate to read from and write to relational databases.
TARGET AUDIENCE:
Who will the Course Benefit? The JPA and Hibernate course is aimed at developers involved in the building of complex enterprise-level Java applications.
COURSE PREREQUISITES:
Requirements Delegates attending this course should be competent Java developers who have a good understanding of OO principles and are able to build simple applications that exploit APIs including Collections,IO,and JDBC in particular. This knowledge can be obtained by attendance on the pre-requisite Java Programming 1 / Java Developer course.
COURSE CONTENT:
JPA and Hibernate Training Course Course Contents – DAY 1 Course Introduction • Administration and Course Materials • Course Structure and Agenda • Delegate and Trainer Introductions Session 1: INTRODUCTION TO HIBERNATE • The problems with JDBC • About ORM • The relationship between JPA and Hibernate • Hibernate architecture • Installing Hibernate • Configuring the SessionFactory (XML and Java) • Obtaining and using a Session (basic) Session 2: BASIC ENTITY MAPPING • About entity mapping • XML mapping • Annotation mapping • Entity types • Value types • Embeddable types • Collections • Key generation Session 3: THE HIBERNATE SESSION • About the Hibernate Session • Transient,persistent,and detached entity states • Hibernate transactions • Using the Session to perform basic CRUD operations JPA and Hibernate Training Course Course Contents – DAY 2 Session 4: COMPOSITE MAPPING • About composite mapping • One-to-one • One-to-many • Many-to-many • Uni vs bi-directional associations • Cascading • Eager vs lazy fetching • The n+1 problem Session 5: INHERITANCE MAPPING • About inheritance mapping • Mapped superclass • Single table • Joined table • Table per class • Polymorphic queries JPA and Hibernate Training Course Course Contents – DAY 3 Session 6: HIBERNATE QUERY LANGAUGE (HQL) • About Hibernate Query Language (HQL) • Basic queries • Querying for a subset of the class's fields • Literal,ordinal,and named parameters • Single result queries • Functions • Queries with joins • Eager fetching • Ordering • Grouping • Native queries • Named queries • An introduction to criteria queries Session 7: THE JPA ENTITYMANAGER • About the JPA EntityManager • Configuring the EntityManagerFactory (XML and Java) • Obtaining and using an EntityManager (basic) • About the Persistence Context • About the JPA Query Language (JPQL) • JPA EntityManager vs Hibernate Session Session 8: PERFORMANCE TUNING • Discovering performance issues • Choosing the right fetch type • Query-specific fetching • Using Sets,not Lists,for many-to-many associations • Having the database do the heavy lifting • First and second-level cache • Performing bulk updates
FOLLOW ON COURSES:
Further Learning Developing Applications with Java EE Core Spring