Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
Programming

/

Back-end

High-Performance JPA & Hibernate

Is your Java persistence application a well-built, high-performance enterprise application, or slow code that just barely runs? The difference between the two is just a fine line. Let's study JPA and Hibernate properly and build high-performance applications!

(4.2) 39 reviews

615 learners

  • vladmihalcea
Java
JPA
hibernate

Reviews from Early Learners

What you will learn!

  • Learn how to analyze and solve JDBC, JPA, and Hibernate performance issues in a practical environment.

  • Learn to understand the internal structure of JPA and Hibernate and accurately analyze the root cause of performance degradation.

  • Beyond simply using APIs, you can develop data access design skills to control query execution flow and state change mechanisms.

Vlad-Banner (edited)

Learn from global experts
High-Performance Java Application Strategy

Are you really using the JPA you are using now properly?

Most performance bottlenecks start with what we think we know.

" The moment you understand Hibernate internals , your practical design changes ."

Fundamentals of Performance Design Understanding with Hibernate

Many Java developers use JPA to handle data, but when a performance problem occurs in practice, it is not easy to pinpoint the exact cause. Even if you look at the log, there are no clues, and even if you fix the code, there are many cases where it does not improve. This is because they only look at the code that is visible without properly understanding the internal workings of Hibernate, which is the basis of JPA.

What actually happens inside JPA ? When are connections opened, when are queries executed, and how do batch processing, caching, and locking affect performance? Understanding the Hibernate flow can help you answer these questions.

Recommended by many Java experts
Performance Optimization Bible

Praise from Java Champions Around the World
Amazon rating 4.7
️ Direct lecture from the best-selling author!

Rafael Winterhalter
(Byte Buddy founder
Java Champion)

Lukas Eder
(JOOQ Founder
Java Champion)

Markus Eisele
(Red Hat Technology Evangelist
Java Champion)

Whether you use JDBC directly or via JPA or Hibernate, there is no better summary of the performance implications.

This book is a must-read for any developer who wants to push the performance of relational databases to the limit with Java applications.

Vlad has distilled his vast experience into an easy-to-read book that is a must-read for anyone working with JPA or Hibernate.

The lecture "High-Performance JPA & Hibernate"

A rare JPA optimization course focused on performance issues

Most JPA lectures focus on entity design or API writing. However, this lecture focuses on solving performance bottleneck problems that occur repeatedly in practice . It diagnoses complex issues such as unexpected lazy loading exceptions, query explosion, and cache invalidation from the cause through Hibernate's internal structure, and presents design criteria that consider performance based on core elements such as flush, connection pool, and statement creation flow.

Hibernate Thinking That Changes Practical Design

Hibernate can execute queries at times we don't intend, or generate dozens of queries with just one association setting. This lecture structurally analyzes the internal mechanisms that trigger query generation, such as dirty checking, execution time, and association processing. Through this, students will be equipped with design judgment criteria that can predict execution flow and maintain performance under changing conditions .

Understand Hibernate execution flow ' visually '

The internal workings of Hibernate are too complex and abstract to be understood through code alone. This lecture uses step-by-step diagrams to visually explain the flow from connection creation to execution plan, cache application, and locking processing. It is structured so that you can intuitively understand the complex execution structure according to the execution order and condition flow, and through the lecture, you can develop a design sense that penetrates the entire structure of Hibernate at a glance .

Learning Contents

This course provides a foundation for more sophisticated handling of JPA by understanding the internal workings of Hibernate, including query execution flow and resource usage.

Connection Lifecycle and Pool Control Strategy

Resource bottlenecks can occur when connections are created and closed for each request, or when they behave unexpectedly. In this lecture, you will learn how Hibernate works with connection pools, and how to use connection providers and statistics to track resource flows and bottlenecks.

Identifier Strategy and Optimization

The way identifiers are generated has a direct impact on the scalability and initial performance of the system. We will look at how association and inheritance design, along with Hibernate's optimizer strategy, affect query volume and complexity. We will also learn criteria for structurally preventing performance bottlenecks caused by poor design.

Control query execution timing

Hibernate's flush timing occurs in various conditions than expected, and it can also cause unnecessary query occurrence. In this lecture, you will learn how to precisely control query execution timing through internal mechanisms such as action queue, dirty checking, and bytecode enhancement.

Statement execution flow and query optimization

If a Statement is newly created for each request or the execution plan is not recycled, the DB load can increase rapidly. Analyze Hibernate's Statement creation and caching flow, execution plan optimization structure, and learn strategies to improve query execution efficiency.

Strategies that affect bulk processing and query performance

Hibernate has a large performance difference depending on the strategy for bulk processing or related entity retrieval. Learn about batching, fetching, DTO projection, cache hierarchy, etc. according to the practical flow, and learn how to stably control the number of queries and processing speed even when the amount of data is large.

Transactions and locking strategies for concurrency control

When concurrency issues occur in a multi-threaded environment, data integrity can be broken if transactions or locks are used incorrectly. Learn about Hibernate's transaction processing structure and pessimistic/optimistic locking strategies, and provide judgment criteria that can be applied effectively in practice.

Learning Materials

  • 46, and 1025 pages of PDF presentation materials are provided.

  • All source code is available in a GitHub repository , which you will set up yourself during the course and use as your learning environment for JPA or Hibernate.

Recommended for
these people

Who is this course right for?

  • People using JPA, Hibernate, etc., but wanting to utilize them better.

  • Those who use JPA, Hibernate, etc., but want to analyze the internal structure and deepen their fundamental understanding

  • Those who want to learn how to solve performance issues occurring in the Java Data Access layer in a practical environment

Need to know before starting?

  • JAVA language

  • Basic knowledge of relational database

  • JPA

Hello
This is

1,148

Learners

61

Reviews

4.4

Rating

2

Courses

My name is Vlad Mihalcea, and I’m a Java Champion. I wrote the High-Performance Java Persistence book, which became one of the best-selling Java books on Amazon.

 

I'm currently developing the amazing Hypersistence Optimizer, and in my free time, I develop various open-source projects (e.g., Hypersistence Utils and FlexyPool) and answer questions on StackOverflow.

 

저는 Java 챔피언이자 Hibernate ORM 프로젝트의 주요 기여자입니다. Hypersistence Optimizer 도구를 만들었으며, 이 도구는 애플리케이션 구성과 매핑을 스캔하여 데이터 액세스 계층 속도를 향상시키는 데에 필요한 변경 사항을 알려주는 도구입니다.

StackOverflow에서 Hibernate, Java, JPA 태그에 관련된 수천 개의 질문에 답변하며 골드 배지를 획득했습니다.

흥미로운 것을 발견하면 개인 블로그에 공유하는 것을 좋아합니다. 그는 오픈 소스 소프트웨어를 신뢰하며, 모든 개발자가 어떤 방식으로든 참여해야 한다고 생각합니다.

적절한 도구를 찾지 못하면 Hypersistence UtilsFlexyPool과 같은 새로운 오픈 소스 프로젝트를 시작하기도 합니다.

Curriculum

All

50 lectures ∙ (10hr 42min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

39 reviews

4.2

39 reviews

  • 화를참자님의 프로필 이미지
    화를참자

    Reviews 6

    Average Rating 5.0

    5

    6% enrolled

    블라드님 강의가 있다는 건도 알고 있었지만, 영어가 안돼서 망설이다 말았었습니다. 블라드님이 언제 한국어를 배운건지 모르겠지만, 한국어로 지식을 공유해주셔서 감사합니다... 밀도 높게 잘 짜여진 것 같습니다. 나머지도 잘 학습해보겠습니다

    • Vlad Mihalcea
      Instructor

      Thanks to Inflearn, the course is now available in Korean as well.

  • 장우정님의 프로필 이미지
    장우정

    Reviews 6

    Average Rating 5.0

    5

    98% enrolled

    잘 정돈된 강의. JPA와 하이버네이트의 쿼리에 대해 일목요연하게 설명합니다. 어떻게 성능을 테스트하는지, 그에 따라 어떤 방식으로 구현하는게 나은지 잘 정리해줍니다. 중구난방으로 흩어져있던 지식을 깔끔하게 정리해서 묶어주는 느낌이었어요

  • asdf님의 프로필 이미지
    asdf

    Reviews 10

    Average Rating 5.0

    Edited

    5

    50% enrolled

    자세한 개념 그리고 실습을 통해 익힐 수 있어 좋았습니다! 특히 다양한 DBMS에 따른 차이점과 적용 방법을 잘 설명해 주십니다.

    • Vlad Mihalcea
      Instructor

      감사합니다. 계속 지켜봐 주세요.

  • hahahl님의 프로필 이미지
    hahahl

    Reviews 46

    Average Rating 5.0

    5

    10% enrolled

    SQL에서 이어서 JPA강의도 수강하는데 역시 의심할 필요도 없는 강의 퀄이네요!

  • 모깅님의 프로필 이미지
    모깅

    Reviews 25

    Average Rating 5.0

    5

    22% enrolled

    진짜 깊게 설명해주십니다. 남은 강의도 잘 먹겠습니다!

    • Vlad Mihalcea
      Instructor

      I'm happy you found my explanations clear and thank you for taking this course.

$176.00

vladmihalcea's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!