如何使用Modeshape查询分隔文本内容?

时间:2012-05-07 03:19:32

标签: java jcr modeshape

我已阅读参考指南和论坛,寻找使用JCR获取存储在分隔(CSV)文件中的数据的方法,但尚未找到解决方案。我已经读过可以访问基础数据和元数据,我只是不知道如何。

我查看了Modeshape论坛上的“初学者指南”,并修改了配置以使用分隔的文本序列器。然后我使用与论坛中相同的代码将csv文件添加到repo中。

当我使用select * from [nt:file]查询回购时,我没有获得任何内容,只有nt:file元数据。当我查询[jcr:content][jcr:data]时,我也会这样做。

所以我的问题是,如果CSV文件中的数据存储在存储库中,我该如何查询?

1 个答案:

答案 0 :(得分:1)

假设排序成功,输出结构应与定义here的结构类似。

要查询此内容,一种可能性是构建&执行JCR_SQL2查询,如下所示:

String expr = "SELECT * FROM [text:column] WHERE [text:data] LIKE 'somestring'";
Query query = session.getWorkspace().getQueryManager().createQuery(expr, Query.JCR_SQL2);    
QueryResult result = query.execute(); 
RowIterator iter = result.getRows();
while (iter.hasNext()) {
     //your code
}

查询可以是您需要的任何内容。有关详细信息,请查看ModeShape's documentation

注意:此答案最初是以response的形式发布在ModeShape论坛的同一问题上。