hibernate缓存(例如EHCache)是否可以使用jpa特定代码(如果我使用EntityManager / EM Factory而不是Session / SessionFactory)?

时间:2011-02-27 07:34:34

标签: hibernate caching jpa ehcache

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

1 个答案:

答案 0 :(得分:3)

是的,它会正常工作。如果你查看代码,EntityManagerImpl委托给SessionImpl,那么一切都将像纯hibernate一样工作。另请查看this article有关JPA 2.0中的缓存的信息