Could you explain your use case a bit more. To me it sounds odd to have an additional level of caching within Search and it also harbors the risk of getting things wrong and ending up with stale data. Why not rely on the different caches (e.g. Hibernate 2nd level cache) which come with Hibernate/JPA? I think if these caches are configured properly, you already get what you want. In particular since Search even tries to automatically retrieve the entities from the cache instead of doing a database round trip. You can even influence this behaviour by setting the {{ ObjectLookupMethod}}: