我正在将hibernate 5.3.7与ehcache 3.7一起使用,我想缓存不存在的实体。
示例:
我尝试查找ID为10的实体,如果该实体不存在,则应返回null / Optional.empty(),直到收回缓存为止。
之所以这样做,是因为我们将用户消息存储在数据库中,而特定于区域的语言又回到了母语。
示例:
如果我请求消息button.accept
的语言es_PA
,但该消息不存在,我应该返回消息以语言es
的消息。
因此,很有可能会收到对不存在但应该缓存的实体的请求。
我当前的配置是这样
spring:
jpa:
properties:
hibernate:
cache:
provider: org.ehcache.jsr107.EhcacheCachingProvider
region:
factory_class: jcache
并且实体类带有以下注释:
@Cacheable @Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
PS:我也在使用Spring Boot 2.1.3
答案 0 :(得分:0)
在这种情况下,您可能不应该缓存实体,而应该缓存存储库方法的结果。
这样,您还可以缓存Optional