2012-09-28 4 views
2

Infinispan JPA 캐시 로더는 어떻게 구현합니까? infinispan API에서 구현할 패턴이나 방법이 있습니까?Infinispan JPA 캐시 로더?

+0

할 말이 있습니까? CacheLoader API는 모두 BLOB을로드하고 저장하는 데있어 JDBC 캐시 로더를 사용하는 것이 좋습니다. 일부 알려진 스키마에 매핑 할 수 없습니다. 좀 더 유연한 저장소가 필요하다면, Hibernate OGM을 살펴 보자. – Sanne

+0

blob과는 다른 엔티티 테이블을 저장할 수 있다면, 캐싱 뒤에 쓰기 기능을 더 많이 사용할 수있다. – Kalla

답변

2

Infinispan의 기존 CacheLoader 구현은 대부분 데이터가 저장 공간이 필요하고 맹목적으로 바이트 배열로 간주한다고 가정합니다. Infinispan의 통합 API는 "store (Key, Value)"또는 "load (Key)"이외의 많은 컨텍스트를 노출하지 않습니다. 나는 조금 지나치게 단순화하고 있지만, 핵심이다.

LuceneCacheLoader 한 가지 예외가 있습니다. 그것은

  • 을 기대하는 유형을 알고 (예 : 액세스 패턴 등) 디렉토리의 알려진 요구의
  • 를 활용합니다

    영감을 얻으려는 자료를 살펴보십시오. note로드 만 구현했습니다 (CacheLoader).

    Infinispan과 CacheLoader를 사용하여 응용 프로그램을 제어하는 ​​경우 이러한 세부 정보도 활용할 수 있습니다.

    까다로운 측면 :

    • 에도 동일한 트랜잭션에서 여러 키를 작성하는 동안, 당신은 CacheLoader 로직의 범위에서 한 번에 하나 개의 항목에 액세스해야합니다 -> 하드 관계를 매핑을 :에이 당신은 순서가 항목을받을 수 뒤에 쓰기로
    • "연결을 복원"한 번에 하나의 개체를 처리하고 ->되지는 않을거야 뒤에 쓰기로 참조 무결성
    • 처리하는 방법을 잘 동일하게 트랜잭션 컨텍스트 -> 허용 될 수 있습니까?

    이러한 것들을 고려해 볼 때 나는 이것을 쓸 수있을 것이라고 확신합니다. 얼마나 쉬운가요? 그건 당신의 앱에 달렸어.

    일반적인 해결책이 효과가 있을지 잘 모르겠습니다. 할 수 있다는 것을 알게되면 프로젝트에 큰 도움이되므로 기부 해주십시오.