WeAreDevelopers LIVE Apr 18, 2023

Hibernate: How to keep calm

Philipp Frauenthaler , Gregor Lucny

Stop fighting your Java data layer. Master Hibernate entity lifecycles, eliminate N+1 query bottlenecks, and scale massive datasets without exhausting heap space.

Pause
Mute Enter Fullscreen
#1 about 4 min

Setting up domain models and database access challenges

A sample user domain model illustrates the complexity of managing relational data with traditional database drivers.

#2 about 3 min

Core capabilities and motivations for adopting object-relational mapping

Mapping tools automate schema generation, type handling, and relational hierarchies while maintaining broad database independence.

#3 about 2 min

Mapping basic entity properties to database tables

Annotating classes configures underlying tables, constraint validation, and identity generation algorithms.

#4 about 2 min

Navigating the transient, managed, and detached entity lifecycles

Understanding when an object transitions between synchronization contexts dictates when changes automatically propagate to the database.

#5 about 2 min

Reducing database roundtrips with level one caching

Transaction-scoped caching prevents duplicate queries for previously loaded entities during active sessions.

#6 about 4 min

Abstracting data access layers using common framework repositories

Repository interfaces automate query compilation based on method naming conventions and manage transactional boundaries.

#7 about 4 min

Synchronizing domain classes with automated database schema migrations

Change set libraries automatically reconcile compiled application models with current database configurations at startup.

#8 about 3 min

Standardizing entity identifiers across different environment stages

Client-assigned universal identifiers resolve limitations inherent to auto-incrementing database columns during environment data cloning.

#9 about 4 min

Defining entity equality accurately within collections and sets

Evaluating solely the underlying identity token prevents unexpected lazy loading triggers when persisting objects in hashed collections.

#10 about 5 min

Resolving recursive entity loading problems using joint fetches

Logging execution frequencies reveals massive implicit queries which can be consolidated using specific cross-join commands.

#11 about 4 min

Preventing memory exhaustion by streaming large entity datasets

Paginating query streams and detaching evaluated instances immediately liberates garbage collection during massive transactions.

#12 about 4 min

Protecting external API calls with transaction synchronization mechanisms

Registering custom compensations guarantees that dependent services revert accurately if asynchronous network interactions unexpectedly fail.

#13 about 2 min

Publishing state alterations automatically through lifecycle event hooks

Binding custom global listeners routes model updates directly to messaging brokers without duplicating logic schemas.

#14 about 3 min

Balancing framework encapsulation against relational data querying capabilities

Employing framework abstractions requires careful diagnostic auditing to prevent severe scalability penalties in production servers.

#15 about 7 min

Navigating early software engineering roles and team structures

Building initial foundational experience requires hands-on troubleshooting exposure before transitioning toward broad structural architecture functions.

#16 about 3 min

Transitioning from adjacent functions into software engineering roles

Demonstrating self-guided side projects proves aptitude and capability specifically when migrating from auxiliary operational positions.

#17 about 3 min

Implementing hybrid telecommuting arrangements within technical project cycles

Establishing core in-office coordination schedules preserves agile synchronous collaboration while maintaining distributed lifestyle flexibilities.

#18 about 2 min

Avoiding underlying collection conflicts during batch association fetching

Sequentially mapping diverse nested relationships prevents severe internal persistence framework crashes when mapping redundant structures.

Matching moments

5:00 min

Simplifying database interactions with Hibernate Panache

Alex Soto Alex Soto · WWC 2022

6:13 min

Addressing framework compatibility and overall language evolution

Ron Veen Ron Veen · WWC 2022

4:10 min

Creating database transactions with Hibernate ORM and Panache

Daniel Oh Daniel Oh · WWC 2025

5:13 min

The object-relational impedance mismatch in standard database programming

Markus Kett Markus Kett · WWC 2022

3:01 min

Modernizing EJBs and evaluating future Java technologies

Ivar Grimstad Ivar Grimstad · WWC 2025

2:36 min

Modern application stacks and real-time data requirements

Tim Faulkes · LIVE

Upcoming sessions on this topic

Open session

World Congress 2026 North America

Fault Tolerance and Consistency at Scale: Harnessing the Power of Distributed SQL Databases

Wei Hu

Senior Vice President of Research and Development

Wei Hu
Open session

World Congress 2026 North America

Beyond SQL Generation: How to Teach Agents What Your Database Actually Means

Kris Jenkins

Lead Developer Advocate

Kris Jenkins
Open session

World Congress 2026 North America

Look What Java Can Do Now: Live-Coding a GenAI MCP Server with the JAQ Stack

Suren Konathala

Senior Engineering Leader, Marketing & AdTech, AI GTM & Digital Experience Platforms, Java x AI

Suren Konathala
Open session

World Congress 2026 North America

API = Some REST and HTTP, right? RIGHT?!

Rustam Mehmandarov

Passionate computer scientist

Rustam Mehmandarov
Open session

World Congress 2026 North America

public void saveMoney(AI): The Developer's Guide to Unit Economics

Hrushikesh Pokala

Senior Software Engineer Lead at Equifax

Hrushikesh Pokala
Open session

World Congress 2026 North America

Designing APIs That Survive AI Agents at Scale

Phani Pendurthi

Mastercard, Principal Software Engineer

Phani Pendurthi