Я пишу запрос JCR SQL2, в котором перечислены все узлы данного типа, которые являются потомками определенного пути.
Когда я пишу свой запрос так:
Query query = queryManager.createQuery(
"SELECT * FROM [cq:PageContent] where ISDESCENDANTNODE(\"/content\") AND ([sling:resourceType] = $resourceType)", Query.JCR_SQL2);
query.bindValue("resourceType", session.getValueFactory().createValue("my-type"));
работает нормально, но когда я пытаюсь связать то, что находится под ISDESCENDANTNODE, вот так:
Query query = queryManager.createQuery(
"SELECT * FROM [cq:PageContent] where ISDESCENDANTNODE($base) AND ([sling:resourceType] = $resourceType)", Query.JCR_SQL2);
query.bindValue("base", session.getValueFactory().createValue("/content"));
query.bindValue("resourceType", session.getValueFactory().createValue("my-type"));
исключение выдается в query.bindValue ("base", ...):
"javax.jcr.query.InvalidQueryException: java.text.ParseException: Query: SELECT * FROM [cq: PageContent] где ISDESCENDANTNODE ($ base (*)) AND ([sling: resourceType] = $ resourceType); ожидается :) "
Я знаю, что могу просто объединить значение параметра в запросе, но я считаю, что это плохая практика.