try something like that when configuring your hibernate session factory:
configuration.setProperty( Environment.USE_QUERY_CACHE, Boolean.FALSE.toString() );
configuration.setProperty( Environment.USE_SECOND_LEVEL_CACHE, Boolean.FALSE.toString() );
configuration.setProperty(Environment.CACHE_REGION_FACTORY,org.hibernate.cache.impl.NoCachingRegionFactory.class.getName());
configuration.setProperty(Environment.CACHE_PROVIDER,org.hibernate.cache.NoCacheProvider.class.getName());
However note that you cannot disable the Session Cache which is provided by Hibernate (If not all JPA implementations). If you really something not to be cached by Hibernate, you can either evict it OR not use hibernate (whichever is simpler to you)
As for caching specific entities, I recommend you take a look at javax.persistence.Cacheable and see how that works for you.