2016-06-27 3 views
0

Jhipster 프로젝트에서 캐시 작업을하고 있습니다. 사용자 엔티티에서 캐시를 사용하고 싶습니다. 내가 데이터베이스에서 인출되어 내 응용 프로그램 사용자에 로그인하면Jhipster : 캐시가 작동하지 않는 이유가 무엇인가요?

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

dev에 YML 파일

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 

:

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

나는 ehcache.xml 파일을 구성합니다. 로그 아웃하고 로그온하면 사용자는 항상 데이터베이스에서 가져옵니다. 추가 할 다른 설정이 있습니까? 감사합니다.

답변

0

쿼리 결과를 캐시하려는 경우. Spring에서는 Cache Abstraction을 사용해야합니다.

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

주석 @Cacheable 캐시 인구 트리거 : 당신의 엔티티 저장소에서

, 당신은 (코드는 위의 링크에서이다) 같은 것을 추가해야합니다. @Cache은 엔티티에 캐시 저장을 추가합니다.