J'utilise eclipselink JPA avec une base de données qui est également mise à jour en externe à mon application. Pour cette raison, il y a des tableaux que je veux interroger toutes les quelques secondes. Je ne peux pas obtenir ce travail même lorsque j'essaie de désactiver le cache et le cache de requête. Par exemple:Désactiver la mise en cache eclipselink et la mise en cache des requêtes - ne fonctionne pas?
EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("default");
EntityManager em = entityManagerFactory.createEntityManager();
MyLocation one = em.createNamedQuery("MyLocation.findMyLoc").getResultList().get(0);
Thread.sleep(10000);
MyLocation two = em.createNamedQuery("MyLocation.findMyLoc").getResultList().get(0);
System.out.println(one.getCapacity() + " - " + two.getCapacity());
Même si les changements de capacité alors que ma demande dort println imprime toujours la même valeur pour un et deux.
J'ai ajouté ce qui suit à la persistence.xml
<property name="eclipselink.cache.shared.default" value="false"/>
<property name="eclipselink.query-results-cache" value="false"/>
Je dois manquer quelque chose, mais je suis à court d'idées.
James
Dans mon cas, les 2 propriétés que vous avez mentionné a résolu le problème. J'utilisais cependant une EntityManager portée par la demande. – Jarekczek