Hibernate provides sophisticated caching mechanisms to improve the performance. Apart from
First-level, Second-Level and query cache, Hibernate can be configured to make use of some open source cache solutions like EHCache or JBoss Cache etc.
If your Hibernate query yields huge but similar results every time it is executed, it is a good idea to cache the results in hibernate to improve the performance. This could be achieved by first enable the hibernate query cache in the hibernate configuration
in properties file
[sourcecode language=’xml’]
hibernate.cache.use_query_cache true
[/sourcecode]
or xml configuration file like
[sourcecode language=’xml’]
and while executing the query specify the cacheability like this
[sourcecode language=’java’]
sess.createQuery(“from…….”)
.setCacheable(true)
.list();
[/sourcecode]
Have a look at Hibernate Cache blog
http://acupof.blogspot.com/2008/01/background-hibernate-comes-with-three.html