Si vous exécutez la requête suivante, elle renvoie RepositoryException à partir de getNodes().
Exemple de code :
Session session = resourceResolver.adaptTo(Session.class); QueryManager queryManager = session.getWorkspace().getQueryManager(); String queryString = "SELECT child.*, page.[cq:lastReplicated] FROM [cq:PageContent] AS page " + "INNER JOIN [nt:unstructured] AS child ON ISCHILDNODE(child,page) " + "WHERE ISDESCENDANTNODE(page,'/content/geometrixx/en/') "; Query query = queryManager.createQuery(queryString, Query.JCR_SQL2); QueryResult result = query.execute(); NodeIterator nodes = result.getNodes();
Exception:
javax.jcr.RepositoryException: Query contains more than one selector: [child, page] at org.apache.jackrabbit.oak.jcr.query.QueryResultImpl.getNodes(QueryResultImpl.java:161)
Guide de référence des API :
https://docs.adobe.com/content/docs/en/spec/javax.jcr/javadocs/jcr-2.0/javax/jcr/query/QueryResult.html#getNodes()
RepositoryException - si la requête contient plusieurs sélecteurs.
AEM
Comme la requête contient plusieurs sélecteurs, vous devez spécifier le sélecteur (par exemple, enfant ou page).
Utilisez la méthode getRows au lieu de getNodes.
Query query = queryManager.createQuery(queryString, Query.JCR_SQL2); QueryResult result = query.execute(); RowIterator rows = result.getRows(); while (rows.hasNext()) { Row row = rows.nextRow(); Node node = row.getNode("page"); }
Exception de référentiel lors de l’exécution de la requête (interne) en CQ 5.6
http://help-forums.adobe.com/content/adobeforums/fr/experience-manager-forum/adobe-experience-manager.topic.html/forum__4rih-hi_i_am_running.html.
Accéder à votre compte