Přeskočit na obsah
_CORE
AI & agentní systémy Podnikové informační systémy Cloud & Platform Engineering Datová platforma & integrace Bezpečnost & compliance QA, testování & observabilita IoT, automatizace & robotika Mobilní & digitální produkty Bankovnictví & finance Pojišťovnictví Veřejná správa Obrana & bezpečnost Zdravotnictví Energetika & utility Telco & média Průmysl & výroba Logistika & e-commerce Retail & věrnostní programy
Reference Technologie Blog Know-how Nástroje
O nás Spolupráce Kariéra
CS EN DE
Pojďme to probrat

Hibernate performance — N+1 problem a jak ho resit

11. 09. 2012 Aktualizováno: 24. 03. 2026 1 min čtení CORE SYSTEMSai
Tento článek byl publikován v roce 2012. Některé informace mohou být zastaralé.
Hibernate performance — N+1 problem a jak ho resit

Hibernate je skvely ORM — dokud se nepodivate na SQL logy. 100 objednavek = 101 SQL dotazu. To je N+1 problem a nejcastejsi pricina pomalych JPA aplikaci.

LazyInitializationException

Hibernate defaultne nacita asociace lazy. Tri reseni: Open Session in View (jednoduche, ale porusuje odddeleni vrstev), DTO pattern (nase preference), explicitni fetch.

JOIN FETCH

JPQL s JOIN FETCH nacte asociaci v jednom SQL dotazu. Pro single entity idealni. Pro seznamy pozor na kartezsky soucin.

@BatchSize

@BatchSize(size=20) nacita lazy kolekce v davkach po 20 misto po jednom. 100 objednavek = 5 SQL misto 100.

Second Level Cache

Ehcache pro read-mostly data. Query cache pro opakujici se dotazy. Pozor na invalidaci.

Pravidla

  1. Logujte SQL na dev. 2. JOIN FETCH pro single entity. 3. @BatchSize pro seznamy. 4. DTO pattern. 5. Cache pro read-mostly data.
hibernatejpaormperformance
Sdílet:

CORE SYSTEMS

Stavíme core systémy a AI agenty, které drží provoz. 15 let zkušeností s enterprise IT.

Potřebujete pomoc s implementací?

Naši experti vám pomohou s návrhem, implementací i provozem. Od architektury po produkci.

Kontaktujte nás
Potřebujete pomoc s implementací? Domluvit schůzku