Wenn Sie die folgende Abfrage ausführen, wird RepositoryException von getNodes() ausgegeben.
Beispielcode:
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();
Ausnahme:
javax.jcr.RepositoryException: Query contains more than one selector: [child, page] at org.apache.jackrabbit.oak.jcr.query.QueryResultImpl.getNodes(QueryResultImpl.java:161)
API-Referenz:
https://docs.adobe.com/content/docs/en/spec/javax.jcr/javadocs/jcr-2.0/javax/jcr/query/QueryResult.html#getNodes()
- RepositoryException - Wenn die Abfrage mehr als einen Selektor enthält
AEM
Da die Abfrage mehr als einen Selektor enthält, müssen Sie den Selektor (z. B. untergeordnete Elemente oder Seiten) angeben.
Verwenden Sie die Methode getRows anstelle von 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"); }
Repository-Ausnahme beim Ausführen der Abfrage (innerer Zusammenschluss) in CQ 5.6
http://help-forums.adobe.com/content/adobeforums/de/experience-manager-forum/adobe-experience-manager.topic.html/forum__4rih-hi_i_am_running.html
Bei Ihrem Konto anmelden