我有非常简单的查询。我想确保我没有任何困惑。我在规范中看到,缓存不是规范的一部分,而是根据特定的orm工具提供商提供的。我在应用程序中使用Hibernate作为ORM工具。但是要独立于供应商,我使用的是JPA(javax.persistence)的所有内容(注释,类等),而不是Hibernate专门提供的任何内容。我使用EntityManager和EntityManagerFactory而不是SessionFactory和Session。我的查询是,在博客中,我看到Session间接地处理了Hibernate提供的缓存提供程序和缓存机制。那么有可能EntityManager还将能够用于缓存提供程序和缓存配置,因此指定为可缓存的实体和查询将能够使用缓存功能?(我认为应该这样)。还有JPA提供的任何api(例如Hibernate提供的Statistics api)来测量和查看缓存统计信息吗?请在这方面帮助我。
EntityManager
EntityManagerFactory
SessionFactory
Session
是的,它将正常工作。如果您看一下代码,则将其EntityManagerImpl委托给SessionImpl,因此所有操作都将与纯hibernate一起工作。另请查看有关JPA 2.0中的缓存的本文
EntityManagerImpl
SessionImpl