Included with Hibernate is a set of event handlers that can be invoked when loading, inserting, updating, and deleting records from Hibernate. My first thought was to use these event handlers as interceptors to pull data from the cache rather than hitting the database. After further review, it appears as if this isn't possible since all of the event handlers return void. Bummer. On the plus side, you can still use the event handlers to put data into the cache, just not pull it out.