If you check the output, the item was actually present in the cache at the time of querying, but yet the database was referred. What actually is a repeatable read?
Instead it will always look in the database, and consequently re-load the item in the cache with a fresh timestamp. The above was demonstrated in demo 3 where we started the 2nd session before the cache was reloaded with the item. Read-Write cache might compromise repeatable read isolation level if an entity is read from the cache and later its contents are evicted from 1st level session cache.
So off you go: you add the couple lines of configuration to your application. Say you have a list of countries in such a cache, configured to hold all countries and never expire or evict them.
Recallthat the query cache does not cache the state of the actual entities in the cache; it caches only identifier values and results of value type. You now have to tell Hibernate what caching strategy to use.