JCR SQL2多值属性搜索

sil*_*b77 7 jcr multivalue modeshape jcr-sql2

我想在内容存储库中使用一个或多个值作为多值属性的输入参数进行搜索.例如:查找主要类型为'nt:unstructured'的所有节点,其属性'multiprop'(多值属性)包含两个值都是"一"和"两".

queryString传递给queryManager.createQuery的方式应该如何?

谢谢.

Ran*_*uch 14

您可以像其他条件一样处理多值属性的条件.例如,以下查询将在'someProp'属性中找到值为'white dog'的所有节点:

SELECT * FROM [nt:unstructured] WHERE someProp = 'white dog'
Run Code Online (Sandbox Code Playgroud)

如果'someProp'属性具有多个值,则具有至少一个满足条件的值的节点将包含在结果中.

要查找具有多值属性的多个值的节点,只需将多个条件组合在一起即可.例如,以下查询将返回具有两个指定值的所有节点:

SELECT * FROM [nt:unstructured] WHERE someProp = 'white dog' 
                                  AND someProp = 'black dog'
Run Code Online (Sandbox Code Playgroud)

任何运算符都可以工作,包括'LIKE':

SELECT * FROM [nt:unstructured] WHERE someProp LIKE '%white%'  
                                  AND someProp LIKE '%black%'
Run Code Online (Sandbox Code Playgroud)

当然,其他组合也是可能的.