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
or xml configuration file like
and while executing the query specify the cacheability like this
sess.createQuery("from.......") .setCacheable(true) .list();