Les indicateurs de requête ne fonctionnent pas dans Eclipse Link 2.3.2/2.6.1 lorsqu'ils sont utilisés pour extraire des données de seconde Cache niveau Conseils d'occasion,javax.persistence.cache.retrieveMode et javax.persistence.cache.retrieveMode ne fonctionne pas avec NamedQuery lorsqu'il est utilisé avec Eclipse Link ORM
@QueryHint(name = "javax.persistence.cache.retrieveMode", value = "USE"),
@QueryHint(name = "javax.persistence.cache.storeMode ", value = "USE")
essayé avec des options ci-dessous.
1. Added JPA Hints to Named query itself
@NamedQuery(
name = TestEntity.FIND_BY_CODE,
query = "select t from Test t where t.code = :code",
hints = {
@QueryHint(name = "javax.persistence.cache.retrieveMode", value = "USE"),
@QueryHint(name = "javax.persistence.cache.storeMode ", value = "USE") })
2. Adding hints to the Entity Manager Itself after injecting it
em.setProperty("javax.persistence.cache.retrieveMode", CacheRetrieveMode.USE);
em.setProperty("javax.persistence.cache.storeMode", CacheRetrieveMode.USE);
3. Added JPA hints at the time of Query execution
em.createNamedQuery(TestEntity.FIND_BY_CODE,
AlertCategoryType.class).setHint("javax.persistence.cache.retrieveMode", CacheRetrieveMode.USE)
.setHint("javax.persistence.cache.storeMode", CacheStoreMode.USE)
.setParameter("code", code).getSingleResult();
Aucune des indications ci-dessus n'a fonctionné. Ensuite, j'ai essayé de déboguer sur trois options différentes ce que j'ai trouvé, la requête de base de données qui s'est formée après la définition de ces conseils passe des indicateurs comme paire clé/valeur ci-dessous. Où eclipselink.query.hints est la clé, même lorsque nous avons défini les indicateurs JPA. C'est quelque chose que nous n'avons pas le contrôle pour changer cela.
Mais lorsque je transmets les indications fournies par Eclipse Link comme ci-dessous, il a commencé à fonctionner comme prévu et les résultats sont extraits du cache et non de la base de données.
eclipselink.query.hints => {eclipselink.query-results-cache.size=500, eclipselink.query-results-cache=true}
Cela signifie que lorsque nous utilisons Eclipse lien, il ne reconnaît que Eclipse lien fourni des conseils en fonction de la touche [ci-dessus montré] que nous voyons dans la requête.
S'il vous plaît suggérer un travail autour pour obtenir le travail Conseils JPA
Environnement J'utilise est
- Eclispe Lien 2.3.2/2.6.1
- fin Runnin servir Glassfish 4.1 [payara ]
- Java8/JEE7