如何对JPA嵌套对象进行Spring缓存?
具有具有一系列嵌套对象的域对象如何对JPA嵌套对象进行Spring缓存?,spring,spring-data-jpa,Spring,Spring Data Jpa,具有具有一系列嵌套对象的域对象B和C是参考数据对象。这些值是静态数据,我们永远不会在表中更新 Class A { B b; C c; } class B { } class C { } B、 C etc相当“沉重”,从DB返回需要一些时间 我有一个这样写的存储库: class MyRepository extends CrudRepository<A, Long> { } 我知道我可以在服务级别使用Spring缓存。但我感兴趣的是数据库级缓存B、C等在许多不同的
B
和C
是参考数据对象。这些值是静态数据,我们永远不会在表中更新
Class A {
B b;
C c;
}
class B {
}
class C {
}
B、 C etc相当“沉重”,从DB返回需要一些时间
我有一个这样写的存储库:
class MyRepository extends CrudRepository<A, Long> {
}
我知道我可以在服务级别使用Spring缓存。但我感兴趣的是数据库级缓存
B
、C
等在许多不同的地方以及更多的地方使用(包括PUT/POST),因此它们都可以充分利用这些参考数据的数据库级缓存,因为使用Spring Cache:Save操作没有太多好处。请检查这是否是您想要的
MyRepository.findById(1L)
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>5.2.2.Final</version>
</dependency>
hibernate.cache.use_second_level_cache=true
hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory
@Entity
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Foo {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
private long id;
@Column(name = "NAME")
private String name;
// getters and setters
}