Session.load
Session.load will always try to use the cache.
Session.find and Query.find
Session.find does not use the cache for the primary object. Hibernate will try to use the cache for any associated objects. Session.find does, however, cause the cache to be populated. Query.find works in exactly the same way. Use these where the chance of getting a cache hit is low.
Session.iterate and Query.iterate
Session.iterate always uses the cache for the primary object and any associated objects. Query.iterate works in exactly the same way. Use these where the chance of getting a cache hit is high.