【发布时间】:2020-12-01 19:21:22
【问题描述】:
因此拥有具有一系列嵌套对象的域对象。 B 和 C 是引用数据对象。这些值是我们永远不会在表中更新的静态数据 - 永远。
Class A {
B b;
C c;
}
class B {
}
class C {
}
B、C 等相当“重”,需要一些时间才能从数据库中返回。
我有一个这样写的存储库:
class MyRepository extends CrudRepository<A, Long> {
}
我需要一种缓存B、C 的方法,这样每次我执行此操作时都不会查询它们。目前我每次查找A 时都会从数据库中检索B 和C,即使它们是静态数据:
MyRepository.findById(1L)
我知道我可以在服务级别使用 Spring Cache。但我感兴趣的是数据库级缓存。 B、C 等正在许多不同的地方使用,而且还会有更多(包括 PUT/POST),因此它们都可以充分利用这些参考数据的数据库级缓存,因为使用了 Spring Cache:保存操作并没有带来太多好处.
【问题讨论】: