Pergunta

quando se utiliza ehcache em vez de definir declaração como

 <cache name="testonly.package.model.TestPOJOcategory"
        maxElementsInMemory="200"
        eternal="true"
        overflowToDisk="false"
        timeToIdleSeconds="300"
        timeToLiveSeconds="600"
    />

pode definir diretamente entidade independente dentro de qualquer provedor de cache estamos usando?

@Cache(
  type=CacheType.SOFT, 
  size=64000 
  expiry=36000000,  
  coordinationType=CacheCoordinationType.INVALIDATE_CHANGED_OBJECTS 
)

referência: http://wiki.eclipse.org/EclipseLink/Examples/JPA / Caching (ele mostrou apenas para EclipseLink, não ehcache)

Foi útil?

Solução

Em primeiro lugar, mesmo que a maioria JPA persistência provedores (como Hibernate, EclipseLink, ...) fornecem suporte para cache de segundo nível (s), JPA 1.0 fez não especificar o suporte de um cache de segundo nível. Então, quando se joga com cache L2, você está realmente usando extensões de JPA que não são padrão e não são portáteis a partir de um fornecedor para outro. Hibernate do @Cache anotação não o é mesmo que @Cache anotação do EclipseLink e não é comparável com a do OpenJPA @DataCache anotação . Todos estes são diferentes, eles são proprietários. Se você estiver usando Hibernate (que é o meu entendimento de suas perguntas anteriores), você não deve olhar para EclipseLink coisas proprietários (ou apenas para sua cultura, mas esta questão vai além da cultura se me permite).

Em segundo lugar, o que faz você pensar que @Cache anotação do EclipseLink tem nada a ver com EHCache? AFAIK, EclipseLink usa seu próprio cache de implementação que não está relacionado com EHCache.

Na verdade, tenho a sensação de que você está um pouco perdido aqui. Talvez você deve abrandar um pouco e fazer as coisas passo a passo: escolher uma solução, ficar com ela, identificar o que você tem que fazer, implementa as coisas um por um, e obter a coisa toda de trabalho. Concentre-se em seu objetivo, parada reunindo mais informação por enquanto, levar algum tempo para digerir as coisas novas que você aprendeu.

Outras dicas

Tanto quanto eu sei em Hibernate, temos algo parecido com isso,

@Entity
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class TestPOJOcategory {
...
}

Este anotação tem mais dois atributos , region e include. Para definir o tamanho, validade e todas essas coisas, eu não tenho conhecimento de nada. Você deve considerar os docs de EhCache, eu acredito.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top