Mon entité a une requête nommée qui ressemble à ceci:Pourquoi le cache de requête EclipseLink fonctionne uniquement lorsque j'utilise query.getSingleResult()?
@NamedQuery(name = "Person.find", query = "select p from Organization p where p.name=:NAME")
Dans mon code, je veux définir l'indice de cache de requête:
query.setHint("eclipselink.cache-usage", "CheckCacheThenDatabase");
Si je tente d'obtenir la liste entière des résultats:
List<Person> result = query.getResultList();
EclipseLink lance une exception:
Exception [EclipseLink-6124] (Eclipse Persistence Services - 1.0.1 (Build 20080905)): org.eclipse.persistence.exceptions.QueryException
Exception Description: Required query of class org.eclipse.persistence.queries.ReadAllQuery, found class org.eclipse.persistence.queries.ReadObjectQuery
Si j'essaie d'obtenir un seul résultat, il fonctionne:
Person person = query.getSingleResult();
Si je supprime l'indicateur de requête, puis getResultList() fonctionne également.
Je ne comprends pas l'exception - ne dit-on pas qu'il attend spécifiquement getResultList() ?? Qu'est-ce que je fais mal?