Saturday 23 September 2023

Hibernate, JPA (Java Persistence API) and Spring Data JPA using Spring and Spring Boot

 

What you'll learn


  • You will learn the basics of JPA and Hibernate - Entities, Relationships, Inheritance Mappings and Annotations
  • You will understand approaches to querying data using JPA and Hibernate - JPQL, Criteria API and Native Queries
  • You will understand JPA and Hibernate Relationships in depth - One to One, Many to One and Many to Many
  • You will use a variety of Spring Boot Starters - Spring Boot Starter Web, Starter Data Jpa, Starter Test
  • You will learn the basic of performance tuning your JPA application with Hibernate - Solve N+1 Queries Issue
  • You will learn the basics of caching - First Level Cache and Second Level Cache with EhCache
  • You will understand the basics of Spring Data JPA and Spring Data REST


Description


Hibernate is the most popular Java ORM framework.  Almost every Real World Project today uses JPA and Hibernate in combination with Spring Boot and Spring Data JPA.

Do you want to Learn JPA & Hibernate and use them in combination with Spring Boot and Spring Data JPA?  Do you want to Learn about Entities, Relationships, Entity Manager, JPQL, Native Queries, Inheritance Hierarchies, Criteria API, Transaction Management, Caching and Performance Tuning with JPA & Hibernate in combination with Spring Data JPA and Spring Data REST? 



WHAT OUR LEARNERS ARE SAYING:


5 STARS - I really loved this course. The instructor explains features of JPA and Hibernate clearly and also very deeply. Especially I liked explanation of the transaction management what I didn't seen in other courses.By the way this course helped me to develop the persistence layer of a commercial application for my customer.

5 STARS - Absolute brilliant course, I was struggling using books but this course helped me understand using code to demonstrate how Hibernate and JPA work. Each video builds on the next and is at a pace that does not overwhelm you. I thoroughly recommend this course if you need to improve your Hibernate and JPA knowledge.

5 STARS - It is really state of the art and how spring boot and hibernate are used nowadays! This course was very helpful in my new job, since in the project we use spring boot and hibernate. Thank you!

5 STARS - This course exceeded my expectations, I thought I knew about hibernate but I discovered I didn't, I really recommend this course.

5 STARS - Thanks Ranga for the wonderful course on Hibernate and JPA with Spring Boot! It's a long course and well worth it. Keep up the great work!



COURSE OVERVIEW


Hibernate is the most popular implementation of JPA. It was the most popular ORM framework option before JPA emerged and it provides additional features on top of JPA. We will use Hibernate as the JPA implementation in this course.

The Java Persistence API provides Java developers with an api for mapping java objects to relational data. In this course, you will learn about the Hibernate, JPA API, JPQL (Java Persistence query language), Java Persistence Criteria API and how you can perform ORM (Object Relational Mapping) with JPA and Hibernate. 


During this course


You will learn the basics of JPA and Hibernate - Entities, Relationships, Inheritance Mappings and Annotations

You will understand approaches to querying data using JPA and Hibernate - JPQL, Criteria API and Native Queries

You will understand JPA and Hibernate Relationships in depth - One to One, Many to One and Many to Many

You will use a variety of Spring Boot Starters - Spring Boot Starter Web, Starter Data Jpa, Starter Test

You will learn the basic of performance tuning your JPA application with Hibernate - Solve N+1 Queries Issue. 

You will learn the basics of caching - First Level Cache and Second Level Cache with EhCache

You will understand the basics of Spring Data JPA and Spring Data REST



COURSE HIGHLIGHTS


Journey from JDBC To JPA


Step01 - Setting up a project with JDBC, JPA, H2 and Web Dependencies

Step02 - Launching up H2 Console

Step03 - Creating a Database Table in H2

Step04 - Populate data into Person Table

Step05 - Implement findAll persons Spring JDBC Query Method

Step06 - Execute the findAll method using CommandLineRunner

Step07 - A Quick Review - JDBC vs Spring JDBC

Step08 - Whats in the background? Understanding Spring Boot Autoconfiguration

Step09 - Implementing findById Spring JDBC Query Method

Step10 - Implementing deleteById Spring JDBC Update Method

Step11 - Implementing insert and update Spring JDBC Update Methods

Step12 - Creating a custom Spring JDBC RowMapper

Step13 - Quick introduction to JPA

Step14 - Defining Person Entity

Step15 - Implementing findById JPA Repository Method

Step16 - Implementing insert and update JPA Repository Methods

Step17 - Implementing deleteById JPA Repository Method

Step18 - Implementing findAll using JPQL Named Query


JPA/Hibernate in Depth


Step01 - Create a JPA Project with H2 and Spring Boot

Step02 - Create JPA Entity Course

Step03 - Create findById using JPA Entity Manager

Step04 - Configuring application.properties to enable H2 console and additional logging

Step05 - Writing Unit Test for findById method

Step06 - Writing a deleteByID method to delete an Entity

Step07 - Writing Unit Test for deleteById method

Step08 - Writing a save method to update and insert an Entity

Step09 - Writing Unit Test for save method

Step10 - Quick Review and Debugging Tips

Step11 - Playing with Entity Manager

Step12 - Entity Manager Methods - clear and detach

Step13 - Entity Manager Methods - refresh

Step14 - A Quick Review of Entity Manager

Step15 - JPQL - Basics

Step16 - JPA and Hibernate Annotations - @Table

Step17 - JPA and Hibernate Annotations - @Column

Step18 - JPA and Hibernate Annotations - @UpdateTimestamp and @CreationTimestamp

Step19 - JPA and Hibernate Annotations - @NamedQuery and @NamedQueries

Step20 - Native Queries - Basics

Step21 - Entities and Relationships - An overview

Step22 - Defining Entities - Student, Passport and Review

Step23 - Introduction to One to One Relationship

Step24 - OneToOne Mapping - Insert Student with Passport

Step25 - OneToOne Mapping - Retrieving Student with Passport and Eager Fetch

Step26 - OneToOne Mapping - Lazy Fetch

Step27 - Session vs Transaction

Step28 - OneToOne Mapping - Bidirectional Relationship - Part 1

Step29 - OneToOne Mapping - Bidirectional Relationship - Part 2

Step30 - ManyToOne Mapping - Designing the database

Step31 - ManyToOne Mapping - Retrieving and inserting Reviews for Course

Step32 - ManyToOne Mapping - Generalizing Insert Reviews

Step33 - ManyToOne Mapping - Wrapping up

Step34 - ManyToMany Mapping - Table Design

Step35 - ManyToMany Mapping - Adding Annotations on Entities

Step36 - ManyToMany Mapping - Fixing two join tables problem

Step37 - ManyToMany Mapping - Customizing the Join Table

Step38 - ManyToMany Mapping - Insert Data and Write Join Query

Step39 - ManyToMany Mapping - Retrieve Data using JPA Relationships

Step40 - ManyToMany Mapping - Insert Student and Course

Step41 - Relationships between JPA Entities - A summary

Step42 - Introduction to Inheritance Hierarchies and Mappings

Step43 - JPA Inheritance Hierarchies and Mappings - Setting up entities

Step44 - JPA Inheritance Hierarchies and Mappings - Setting up a Repository

Step45 - JPA Inheritance Hierarchies and Mappings - Single Table

Step46 - JPA Inheritance Hierarchies and Mappings - Table Per Class

Step47 - JPA Inheritance Hierarchies and Mappings - Joined

Step48 - JPA Inheritance Hierarchies and Mappings - Mapped Super Class

Step49 - JPA Inheritance Hierarchies and Mappings - How to Choose?

Step50 - JPQL - Courses without Students

Step51 - JPQL - Courses with atleast 2 Students and order by

Step52 - JPQL - Courses like 100 Steps

Step53 - JPQL - Using Joins

Step54 - Criteria Query - Retrieving all courses

Step55 - Criteria Query - Courses like 100 Steps

Step56 - Criteria Query - Courses without Students

Step57 - Criteria Query - Using Joins

Step58 - Introduction to Transaction Management

Step59 - Transaction Management - ACID Properties

Step60 - Understanding Dirty, Phanthom and Non Repeatable Reads

Step61 - Understand 4 Isolation Levels

Step62 - Choosing between Isolation Levels

Step63 - Implementing Transaction Management - 3 Things to Decide

Step64 - Introduction to Spring Data JPA

Step65 - Testing the Spring Data JPA Repository with findById.

Step66 - Spring Data JPA Repository - CRUD Methosd

Step67 - Sorting using Spring Data JPA Repository

Step68 - Pagination using Spring Data JPA Repository 

Step69 - Custom Queries using Spring Data JPA Repository 

Step70 - Spring Data REST

Step71 - Introduction to Caching

Step72 - Hibernate and JPA Caching - First Level Cache

Step73 - Hibernate and JPA Caching - Basics of Second Level Cache with EhCache

Step74 - Hibernate and JPA Caching - Second Level Cache Part 2

Step75 - Hibernate Tips - Hibernate Soft Deletes - @SQLDelete and @Where

Step76 - Hibernate Soft Deletes - Part 2

Step77 - JPA Entity Life Cycle Methods

Step78 - Using Embedded and Embeddable with JPA

Step79 - Using Enums with JPA

Step80 - JPA Tip - Be cautious with toString method implementations

Step81 - JPA Tip - When do you use JPA?

Step82 - Performance Tuning - Measure before Tuning

Step83 - Performance Tuning - Indexes

Step84 - Performance Tuning - Use Appropriate Caching

Step85 - Performance Tuning - Eager vs Lazy Fetch

Step86 - Performance Tuning - Avoid N+1 Problems


Hibernate Tips & Tricks


When does Hibernate send updates to the database?

When do we need @Transactional in an Unit Test?

Do read only methods need a transaction?

Why do we use @DirtiesContext in an Unit Test?

How to connect to a different database with Spring Boot?

How do you approach designing great applications with JPA?

Good Practices for developing JPA Applications


I'm a highly accomplished Full Stack Developer with a strong foundation in mathematics, holding a Master's degree in Computer Applications. My skill set spans a wide range, including Software Development, Data Science, and Blogging. I specialize in Java, Spring Boot, ReactJS, and SQL, excelling in crafting efficient SQL queries and seamlessly integrating data into Java applications using jQuery. My proficiency extends to tools like DBeaver, enabling me to connect and test queries across diverse database environments. I'm dedicated to optimizing data retrieval and system performance while upholding data integrity. With a solid foundation in MongoDB, I bring versatility to data management. My goal is to create innovative web solutions and robust software, continuously evolving my skills to stay at the forefront of technology.

0 comments:

Post a Comment

Start Work With Me

Contact Us
Bibhuti Bhusan Sahoo
Bhubaneswar,India