java - Hibernate 中缓存并发性中的只读与非限制读写

标签 java hibernate jpa second-level-cache

我是 Hibernate 的初学者,在 JPA 二级缓存并发策略中遇到了这些概念:

Read-Only: Used when the cache is never updated. Data like names of countries etc are suitable candidate

Non-Strict Read-Write: Data that is rarely updated.

我很困惑,不知道两者之间到底有什么区别。

最佳答案

您将只读用于查询一次的缓存条目,通常是在应用程序启动期间或在第一次请求时,并且可以肯定加载的结果在生命周期内永远不会改变的应用程序。就像描述中一样,国家/地区列表就是一个很好的例子。

对于非严格读写,当缓存结果的更新可能偶尔发生变化时,可以使用此选项。

例如商店在一周中的哪几天开业。一般来说,这不会改变,但由于一些整修,下周日可能会关闭,这将导致缓存更新。

这会强制对持久性提供程序进行额外的检查和同步,因此其性能不是最高的(如只读)。

您需要判断是否尽可能使用只读并在字典发生罕见更改时重新启动服务器或实现非严格读写更相关 并处理性能稍慢的情况,但不需要时不时地重新启动服务器。

关于java - Hibernate 中缓存并发性中的只读与非限制读写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55675769/

相关文章:

java - DB返回值是多个

hibernate - CRUD 使用 Hibernate 但没有任何实体

java - 包含 OneToOne 映射的映射类 (OneToMany) 出现问题

hibernate - 如何将构造函数映射与 Spring JPA 存储库结合使用

java - 如何在 OpenGL ES 2 中使用顶点数组对象

java - 是否有 Java/Android 等效于 NSArray 的 iOS 函数 "componentsJoinedByString"?

java - 如何使用反射在 Java 8 中获取方法参数名称?

MongoDB到Java的集成

java - org.hibernate.MappingException : Repeated column in mapping for entity:. ..column:added_by(应使用 insert ="false"update ="false"进行映射)

java - 如何获取windows系统文件夹的路径?