Hibernate: the first-level cache means a re-query never sees another transaction's update

Within one persistence context, an id maps to exactly one instance. A second query returning that row discards the fresh database values and hands back the object already in memory - so a 'refresh' loop silently reads stale data.

Full code & output

This topic is available to PRO members.

Open this topic Go PRO Sign in Create a free account
More in HIBERNATE

Run this yourself in the Online Java Compiler, spin up a live REST API in the API Sandbox, or practise with Java interview questions.

Published 2026-08-25

© Java Coding Hub · About · Contact · Privacy · Terms