Use of the caching provider is only a matter of configuration of Hibernate.
EntityManager is only thin wrapper around
Session. FYI since Hibernate version 5.2
EntityManager, see https://docs.jboss.org/hibernate/orm/5.2/javadocs/org/hibernate/Session.html .
So answer is - Hibernate uses all of their power even when used through JPA.
You can ensure that
EntityManager is wrapper around
Session by code like this:
EntityManager em = ...; // Get EntityManager from somewhere
Session session = em.unwrap(Session.class);
If you use Hibernate then you will successefully get
session wrapped by
EntityManager and can to use it directly.