我的查询非常简单。我想确保我没有任何困惑。
我在规范中看到缓存不是规范的一部分,是根据特定的orm工具提供者提供的。
我在我的应用程序中使用Hibernate作为ORM工具。但是要独立于供应商,我正在使用JPA(javax.persistence)的所有内容(注释,类等),而不是Hibernate特别提供的任何东西。
我正在使用EntityManager
和EntityManagerFactory
而不是SessionFactory
和Session
。
我的观点是,在博客中我看到Hibernate提供的缓存提供程序和缓存机制由Session(间接)处理。那么EntityManager
是否也可以用来缓存提供者和缓存配置,因此指定为可缓存的实体和查询将能够使用缓存功能?
(我认为他们应该)。
还有JPA提供的api(比如Hibernate提供的Statistics api)来测量和查看缓存统计信息吗?
在这方面请帮助我。
答案 0 :(得分:3)
是的,它会正常工作。如果你查看代码,EntityManagerImpl
委托给SessionImpl
,那么一切都将像纯hibernate一样工作。另请查看this article有关JPA 2.0中的缓存的信息