Hola:
Antes de intentar optimizar, deberías tener el problema. Actualmente ¿cada vez que ingresas en esa sección tarda mucho? ¿Y la culpa es de la consulta?. Es un fallo común tratar de optimizar código antes de tener problemas de eficiencia. No es que sea un fallo, es simplemente que se pierde el tiempo en hacer algo que luego no da una mejora clara.
Si ya tienes el problema y estás seguro que es la consulta a la base de datos y que lo puedes resolver con una caché, Hibernate tiene su propia caché. De hecho, tiene dos niveles de caché. Echa un ojo aquí
http://surpatterns.com/sitio/tutoria...segundo-nivel/
Se bueno.