There are two types of hibernate caching: first-level caching and second-level caching. First-level caching is enabled by default and is associated with the Session object. Second-level caching is optional and is associated with the SessionFactory object.