Managing the cache
Besides configuring the cache in your setting files, you can further modify the cache behavior in the code. This is important because in some cases, you would like to bypass the cache completely or force the cache to expire. We will discuss these cases here.
Remove cached entities
In some cases, you want to force the eviction of a cached entity because you may know at some of point of your program execution you will end up with stale data. You can evict entities from both the first-level cache and the second-level cache.
The API to evict entities from the first-level cache is through the session object, that is, session.evict()
. You should note that if the cached entity has been modified during the session, the changes would not be pushed to the database when the session is flushed.
Similarly, the second-level cache provides the interface to evict a cached entity. The Cache
class offers this API. (This used to be under SessionFactory
, but it has been moved, so you first have...