By default, in Hibernate the second level cache is disabled and there is no default implementation for it. Therefor you’ll need a third part implementation. In order to activate the second level cache (entities caching) you need to set the following Hibernate property:
hibernate.cache.use_second_level_cache=true
In order to cache the query results as well, you need to set the following property:
hibernate.cache.use_query_cache=true
If you want Hibernate to cache reference entries (entities that are immutable, doesn’t contain any associations and are read-only), then you need to set the following property:
hibernate.cache.use_reference_entries=true
Finally, you need to set the factory class of your cache provider (e.g. EHCache, Hazelcast, etc), like below (EHCache):
hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory