Jhipster:为什么缓存不起作用?

时间:2016-06-27 15:39:16

标签: caching spring-data-jpa ehcache jhipster

我正在研究Jhipster项目的缓存。我想在用户实体上使用缓存。

@Entity
@Table(name = "jhi_user")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class User extends AbstractAuditingEntity implements Serializable {
// attributes, getters and setters
}

我配置了ehcache.xml文件:

  <cache name="com.domain.User"
           timeToIdleSeconds="1800"
           timeToLiveSeconds="3600">
    </cache>

dev yml file

spring:
    devtools:
        restart:
            enabled: true
        livereload:
            enabled: false # we use gulp + BrowserSync for livereload
    datasource:
        url: jdbc:postgresql://localhost:xxx/cccccccc
        name: ccc
        username: cc
        password: cc
    jpa:
        database-platform: com.util.PostgreSQL82Dialect
        database: POSTGRESQL
        show_sql: true
        properties:
            hibernate.cache.use_second_level_cache: true
            hibernate.cache.use_query_cache: true
            hibernate.generate_statistics: true
            hibernate.cache.region.factory_class: org.hibernate.cache.ehcache.EhCacheRegionFactory
    jhipster:
        cache: # Hibernate 2nd level cache, used by CacheConfiguration
            timeToLiveSeconds: 180
            ehcache:
                maxBytesLocalHeap: 16M

当我登录我的应用程序时,用户从数据库中获取。我注销并登录,用户总是从数据库中获取。 是否有其他配置要添加? 谢谢

1 个答案:

答案 0 :(得分:0)

如果要缓存查询结果。您需要在Spring中使用Cache Abstraction

在您的Entity存储库中,您需要添加类似的内容(代码来自上面的链接):

@Cacheable("books")
public Book findBook(ISBN isbn) {...} 

注释@Cacheable触发缓存填充。 @Cache正在为实体添加缓存策略。