java – 永不改变表的最佳Spring/Hibernate配置

我目前正在使用Spring Hibernate MySQL来处理我正在进行的项目.我意识到有一些表永远不会改变.它们是静态的,在这些表上不会发生插入或更新,因此可以认为是不可变的.对这些表的所有访问都是通过实体集合和hql查询的延迟加载(可以是急切的).

我想知道这种情况下处理这种情况的最佳方法是什么.我有基础知识,只读ehcache,查询缓存和设置为只读的事务(这对Mysql做了什么呢?).我还能看到其他什么?哪种ISOLATION模式,PROPAGATION模式最好?我应该看看其他缓存解决方案吗?或者我应该简单地取消所有这些,只需将数据加载到一系列的哈希图中(这有望成为最后的手段)?

另一个可能的(牵强附会的?)解决方案是拥有一些内存/无事务数据库并让hibernate连接到它.这样的数据库引擎存在吗?

我很感激任何指针,经验你们有过!

最佳答案
为所有实体设置第二级cahce(检查hibernate文档中有关缓存的各种配置/映射详细信息),配置查询缓存并在映射/使用只读会话中将它们标记为不可变,这将使hibernate不检查这些修改执行“事务性后写”和会话刷新时的实体.

这是一个非常常见的场景,这是您应该做的所有事情.
  您不应该处理在内存中散布自己的hashmap缓存(echache的二级缓存为您提供多种存储替代方案),即二级缓存可以为您做什么.
 事务少数据库访问不提供任何性能,性能明智,所以我不担心它,让hibernate处理它.

相关文章

这篇文章主要介绍了spring的事务传播属性REQUIRED_NESTED的原...
今天小编给大家分享的是一文解析spring中事务的传播机制,相...
这篇文章主要介绍了SpringCloudAlibaba和SpringCloud有什么区...
本篇文章和大家了解一下SpringCloud整合XXL-Job的几个步骤。...
本篇文章和大家了解一下Spring延迟初始化会遇到什么问题。有...
这篇文章主要介绍了怎么使用Spring提供的不同缓存注解实现缓...