hibernate - 更新二级缓存而不是失效

标签 hibernate hazelcast

我们将 Hibernate 3.5.6 与 Hazelcast 3.6.1 一起用作二级缓存。我们有以下问题。我们有一个带有非惰性集合的 Hibernate 实体。在同一节点上的两个连续 session 中向集合添加元素时,总是从数据库重新加载整个集合。我本来希望二级缓存可以在将元素添加到集合中时更新,而不是将它从缓存中完全逐出并每次重新加载它以添加另一个条目。这是Hibernate二级缓存的原理性问题,还是我们这边的配置问题?

最佳答案

hibernate 缓存,默认情况下以 PK 为键,所以当你执行 findAll() 时,它不会使用 hibernate 缓存,当你执行 findOne(id) 时它会。

如果你想缓存 findAll() 我会使用 ehcache 和 @Cache annoations,注意它使用什么键来缓存。参见 http://www.ehcache.org/documentation/2.8/get-started/key-classes-methods.html

关于hibernate - 更新二级缓存而不是失效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41824019/

相关文章:

locking - 如何使用榛铸锁

java - Java 中的 Hazelcast Sql 查询

java - 使用 Hazelcast 而不是 MongoDB 存储用户 session / key 有什么好处?

java - 在 java .spring 中创建一个临时数据持有者。 hibernate

java - HQL:当其中一个字段是一对多列表时,如何查询某些字段?

java - 为 @GenericGenerator 设置 allocationSize

hazelcast - hazelcast 配置文件 v3.6 异常

java - 在 JPA 中使用连接池

mysql - 错误 org.hibernate.MappingException : No Dialect mapping for JDBC type: -1

使用 CLI 访问 Hazelcast