[ https://issues.apache.org/jira/browse/JCR-977?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Marcel Reutegger updated JCR-977: --------------------------------- Summary: jcr:deref and parent axis in xpath predicates (was: jcr:deref in xpath predicates) Adjusted summary. > jcr:deref and parent axis in xpath predicates > --------------------------------------------- > > Key: JCR-977 > URL: https://issues.apache.org/jira/browse/JCR-977 > Project: Jackrabbit Content Repository > Issue Type: Improvement > Components: jackrabbit-core, jackrabbit-spi-commons, query > Environment: n/a > Reporter: Frederic Esnault > Assignee: Marcel Reutegger > Fix For: 2.0-alpha4 > > Attachments: deref.patch, deref.patch > > > Currently, the jcr:deref() function is not allowed in a xpath query > predicate. Example : > book holds a reference property on its author(s) > authors have a name > We want all books from a specific author : > /jcr:root/element(*, bookType)[jcr:deref(@author, 'authorType')/@name = > 'King'] > This fails with an InvalidQueryException currently (not supported). > The error is raised in the XPathQueryBuilder class, in function : private > QueryNode createFunction(SimpleNode node, QueryNode queryNode), in the block : > else if (NameFormat.format(JCR_DEREF, resolver).equals(fName)) > Problem is that with this query, when evaluating the jcr:deref() function, > then in this method at this point, queryNode.getType() is 0 and tests raise > the exception if queryNode.getType() is neither QueryNode.TYPE_LOCATION nor > QueryNode.TYPE_PATH. > I think this is a useful place to put a deref function in a query, as I don't > know how we could test the referenced node properties another way. > Frederic Esnault -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.