java - 如何将不同的并发策略分配给同一个(持久性)实体?

标签 java hibernate caching concurrency

我正在使用 JPA,并且我正在为所有引用实体使用二级缓存。 一切正常,我可以从二级缓存中获取实体,因为它们之前已经被选中。

现在,我有两个应用程序,它们都使用相同的数据库(因此它们都使用相同的表、值等)。 1.只读应用只是从数据库中读取数据,根本不修改数据库。因此,我为二级缓存选择了“READ_ONLY”并发策略,目的是为了获得更好的性能。 2.读写应用程序读写数据库的数据,修改数据库。因此,我必须为二级缓存选择“READ_ WRITE”或“NONSTRICT_ READ_ WRITE”并发策略

但是,并发策略是在每个实体类的注解中分配的,所以我无法通过编程方式更改它。 (我不为 JPA 使用类映射文件,所以我不能使用两个映射文件,每个映射文件用于同一实体类的不同并发策略。)

我的问题是,有没有什么好的方法可以根据我的2个不同的应用动态改变二级缓存的并发策略?

最佳答案

我没有使用过 Hibernate,但至少如果您使用 JPA,甚至可以使用部署描述 rune 件覆盖单个注释。您还应该能够使用部署描述符覆盖任何特定于供应商的属性。

很遗憾,我不能给你举个例子,但希望这对你有帮助。

关于java - 如何将不同的并发策略分配给同一个(持久性)实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/916407/

相关文章:

java - 如何在 SaveAll() 之前关闭选择?

SELECT...IN 的 Mysql 缓存

java - 如何连续播放音乐

java - Liquibase 配置文件内容?

mysql - Spring JPA 无法更新名称包含连字符的 MySQL 数据库

java - 'ehcache 2.10.1'使用什么版本的spring?

caching - 缓存激活时地理服务器层会移位

java - Java 中的灰度(每像素 8 位)图像像素操作

Java ArrayList IndexOutOfBoundsException 尽管给出了初始容量

java - Web 应用程序基于数据库数据返回 XML 文档的最佳方式(由 VXML 使用)?