Domanda

quando si utilizza EHCache anziché definire dichiarazione come

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

può definire direttamente all'interno un'entità indipendente da qualsiasi fornitore di cache si utilizza?

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

di riferimento: http://wiki.eclipse.org/EclipseLink/Examples/JPA / Caching (è mostrato solo per EclipseLink, non EHCache)

È stato utile?

Soluzione

In primo luogo, anche se la maggior parte dei provider di persistenza JPA (come Hibernate, EclipseLink, ...) forniscono il supporto per la cache di secondo livello (s), JPA 1.0 ha non di specificare il supporto di un secondo livello di cache. Così, quando si gioca con cache L2, in realtà si sta utilizzando le estensioni JPA che non sono standard e non sono portatili da un fornitore all'altro. @Cache annotazioni di Hibernate non è il stesso di @Cache annotazione di EclipseLink e non è confrontabile con OpenJPA @DataCache annotazioni . Tutti questi sono diversi, essi sono proprietari. Se si utilizza Hibernate (che è la mia comprensione delle vostre domande precedenti), non si deve guardare le cose di proprietà EclipseLink (o solo per la vostra cultura, ma questa domanda va oltre la cultura se posso).

In secondo luogo, ciò che ti fa pensare che @Cache annotazione di EclipseLink ha niente a che fare con EHCache? Per quanto ne so, EclipseLink utilizza i propri implementazione della cache, che non è legato al EHCache.

In realtà, ho la sensazione di essere un po 'perso qui. Si dovrebbe forse rallentare un po 'e fare le cose passo dopo passo: scegliere una soluzione, bastone con esso, identificare ciò che devi fare, implementa le cose una per una, e ottenere il tutto lavoro. Concentratevi sul vostro obiettivo, fermare la raccolta di ulteriori informazioni, per ora, prendere un po 'di tempo per digerire le nuove cose che hai imparato.

Altri suggerimenti

Per quanto ne so in Hibernate abbiamo qualcosa di simile,

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

annotazione ha più di due attributi , region e include. Per impostare le dimensioni, di scadenza e tutte quelle cose, io non sono a conoscenza di nulla. Si dovrebbe prendere in considerazione la documentazione di EHCache, credo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top