강의

멘토링

커뮤니티

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) 42 reviews

655 learners

  • Vlad Mihalcea
Java
JPA
hibernate

Reviews from Early Learners

What you will gain after the course

  • 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,244

Learners

73

Reviews

4.5

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

42 reviews

4.2

42 reviews

  • jiggyjiggy님의 프로필 이미지
    jiggyjiggy

    Reviews 6

    Average Rating 5.0

    5

    6% enrolled

    I knew there were lectures by Vlad, but I hesitated because I'm not good at English. I don't know when Vlad learned Korean, but thank you for sharing your knowledge in Korean... It seems to be well-structured with high density. I will study the rest thoroughly.

    • vladmihalcea
      Instructor

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

  • immenseehorban3732님의 프로필 이미지
    immenseehorban3732

    Reviews 6

    Average Rating 5.0

    5

    98% enrolled

    A well-organized lecture. It clearly explains the queries of JPA and Hibernate. It's well-organized in how to test performance and which implementation methods are better accordingly. It felt like it neatly organized and tied together knowledge that was scattered all over the place.

    • vladmihalcea
      Instructor

      I'm glad you liked the course structure.

  • hahahl님의 프로필 이미지
    hahahl

    Reviews 55

    Average Rating 5.0

    5

    10% enrolled

    I'm taking the JPA course after the SQL one, and as expected, the quality of the lectures is undeniably excellent!

    • vladmihalcea
      Instructor

      제 강좌를 좋게 봐주셔서 감사합니다.

  • tjsahr9191님의 프로필 이미지
    tjsahr9191

    Reviews 27

    Average Rating 5.0

    5

    22% enrolled

    They explain things really deeply. I'll enjoy the rest of the lectures!

    • vladmihalcea
      Instructor

      I'm glad my explanations were clear, and thank you for taking this course.

  • limeade님의 프로필 이미지
    limeade

    Reviews 12

    Average Rating 5.0

    Edited

    5

    50% enrolled

    It was great to learn through detailed concepts and hands-on practice! In particular, the differences and application methods for various DBMSs are well explained.

$176.00

Vlad Mihalcea's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!