我有一个实体,我想在二级缓存中缓存,但它经常更新(通过 hibernate ),这使得它不适合二级缓存。
但是,只有 2 个字段经常更改,其他列经常读取并且非常静态。
将那些频繁更改的字段移动到另一个表并与这个新实体创建一对一关系是否有好处?这样我就可以缓存原始实体,现在列已被删除,而不必费心缓存新实体。或者可能会因为频繁的 select 调用而失去任何获得的好处?
我知道我必须自己进行分析才能确定,但我想检查一下我是否走在正确/理智的道路上。
最佳答案
如果您在主对象和外部化部分之间使用延迟加载连接,并且您不经常需要外部部分(如果有帮助)。
如果您经常需要外部部分,那将没有帮助,因为您总是需要以任何方式访问数据库。 -- 一个异常(exception)是:如果您的主对象非常非常大并且数据库连接非常慢。
但至少你是对的:你需要自己测试一下。
关于hibernate二级缓存与一一对应关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4966403/