Hibernate 缓存注解

Hibernate Cache annotations

为什么在 hibernate 文档中我看到了对用于缓存的实体的两个注释的引用?

例如: http://docs.jboss.org/hibernate/orm/4.2/manual/en-US/html_single/#performance-cache-mapping

@Entity 
@Cacheable
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Forest { ... }

@Cacheable 和@Cache 注解都需要吗?

如果您仅使用 Hibernate,则仅使用 @Cache 即可,因为 @Cacheable 是您可以与 JPA 或 Spring 一起使用的另一个选项。

@Cacheable 通常用于 JPA 实体。在文档中,他们只是指 @Cache 注释,所以只关注它。

这里有一个很好的 Hibernate 缓存级别资源: http://www.javacodegeeks.com/2012/02/hibernate-cache-levels-tutorial.html

希望这对您有所帮助。尽力了:)

简而言之:没有

总而言之:@Cache是​​Hibernate提供的缓存接口,而@Cacheable是JPA规范提供的接口。您可以选择其中之一,甚至可以同时使用两者。请注意,@Cacheable 仅在您的 persistence.xml 将缓存元素设置为 ENABLE_SELECTIVE 或 DISABLE_SELECTIVE.

时才有效