我试图执行以下jcr sql2查询:
String expression = "SELECT * FROM [nt:base] AS p " +
"WHERE NAME(p) like 'opony.txt'";
但我得到了
javax.jcr.UnsupportedRepositoryOperationException.
是否有其他方法可以搜索名称类似于'%example%'的节点?
我还试图搜索具有指定路径的节点
String expression = "SELECT * FROM [nt:base] " +
"WHERE PATH([nt:base]) like '/a/b'";
但我得到了
javax.jcr.query.InvalidQueryException: Query:
SELECT * FROM [nt:base] WHERE PATH([(*)nt:base]) like '/a/b'; expected: LENGTH, NAME, LOCALNAME, SCORE, LOWER, UPPER, or CAST
如何搜索路径类似于'%example%'?
的节点我正在使用JCR_SQL2
javax.jcr.query.Query query = queryManager.createQuery(expression, Query.JCR_SQL2);
答案 0 :(得分:0)
修改强>
有几点:
因此,对于您的第一个查询,请尝试类似
的内容SELECT * FROM [nt:base] AS p WHERE [jcr:title] like '%opony%'
and ISDESCENDANTNODE('/content/a/b')
JBoss documentation on querying相当不错,但要注意它可能与香草Jackrabbit不完全对齐。我还将此cheat sheet用于Magnolia实现。