Zum Inhalt springen
_CORE
AI & Agentic Systems Core Information Systems Cloud & Platform Engineering Data Platform & Integration Security & Compliance QA, Testing & Observability IoT, Automation & Robotics Mobile & Digital Banking & Finance Insurance Public Administration Defense & Security Healthcare Energy & Utilities Telco & Media Manufacturing Logistics & E-commerce Retail & Loyalty
Referenzen Technologien Blog Know-how Tools
Über uns Zusammenarbeit Karriere
CS EN DE
Lassen Sie uns sprechen

Hibernate performance — N+1 problem a jak ho resit

11. 09. 2012 1 Min. Lesezeit CORE SYSTEMSai
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
Teilen:

CORE SYSTEMS

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

Brauchen Sie Hilfe bei der Implementierung?

Unsere Experten helfen Ihnen bei Design, Implementierung und Betrieb. Von der Architektur bis zur Produktion.

Kontaktieren Sie uns