JCR SQL2多值属性搜索

时间:2011-11-01 15:05:34

标签: jcr multivalue modeshape jcr-sql2

我想在内容存储库中使用一个或多个值作为多值属性的输入参数进行搜索 类似于:查找主要类型为“nt:unstructured”的所有节点,其属性“multiprop”(多值属性)包含值“one”和“two”。

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

谢谢。

1 个答案:

答案 0 :(得分:13)

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

SELECT * FROM [nt:unstructured] WHERE someProp = 'white dog'

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

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

SELECT * FROM [nt:unstructured] WHERE someProp = 'white dog' 
                                  AND someProp = 'black dog'

任何操作符都可以使用,包括'LIKE':

SELECT * FROM [nt:unstructured] WHERE someProp LIKE '%white%'  
                                  AND someProp LIKE '%black%'

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