java - 具有一个 Hibernate 映射的多个二级缓存设置

标签 java hibernate hibernate-mapping second-level-cache

假设有多个 Java 应用程序共享一个公共(public)实体模块(实体类 + Hibernate XML 映射)。目前,实体未启用缓存(映射中没有 <cache.../> 元素)。

大多数应用程序主要关注编辑单个实体,因此它不能依赖二级缓存。

现在,实现了一个新的应用程序

  1. 应该使用相同的实体映射
  2. 但必须使用二级和查询缓存。

如何配置缓存?

几个观察结果:

  1. 我无法添加 <cache.../>映射元素,因为这会破坏其他未配置此类缓存且不受我影响的应用程序:

    Second-level cache is not enabled for usage [hibernate.cache.use_second_level_cache | hibernate.cache.use_query_cache]

  2. 我找不到激活实体以在其映射之外进行缓存的方法。为 ehcache.xml 中的实体设置缓存区域没有帮助
  3. 即使我可以更改所有其他应用程序并添加 <cache.../>对于实体映射,通过设置 hibernate.cache.use_second_level_cache=false 禁用缓存不起作用尽管在http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html中是这么说的, 表 3.5

最佳答案

看起来你可以使用 <class-cache>hibernate.cfg.xml 中配置缓存的元素而不是在实体映射中,请参阅 3.8. XML configuration file .

我想您可以负担得起创建自定义 hibernate.cfg.xml这将使用现有的映射,如果没有,则有 Configuration.setCacheConcurrencyStrategy()可能也有帮助的方法。

关于java - 具有一个 Hibernate 映射的多个二级缓存设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8576483/

相关文章:

线程 "main"java.lang.NegativeArraySizeException : -28 中的 Java ArrayList 异常

java - 如何从 Java & H2 DB 连接到 H2 数据库

java - 使用 HQL 和单独的 IdClass 进行复合键查询

hibernate - 有没有办法将 Hibernate 映射到可能存在或可能不存在的列?

java - hibernate:通过 xml 进行多对一映射

java - jdbc 中管理丢失连接的标准方法是什么?

Java Android 滚动到底部并获取新数据后总是转到第一个数据/页面(顶部回收 View )

java - 从 NetBeans 连接到远程 informix 时出现问题

java - hibernate :标准。是否可以构建一个限制列表,然后将其添加到 Criteria 对象

java - 使用 @JoinTable 的 Hibernate 一对多映射问题