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

Java 如何使用Modeshape查询分隔文本内容?,java,jcr,modeshape,Java,Jcr,Modeshape,我已经阅读了参考指南和论坛,寻找使用JCR访问存储在分隔(CSV)文件中的数据的方法,但还没有找到解决方案。我已经读到,可以访问底层数据和元数据,我只是不知道如何访问 我查看了Modeshape论坛上的“初学者指南”,并修改了配置,使其也使用分隔文本序列器。然后我将csv文件添加到repo中,使用与论坛中相同的代码 当我使用select*from[nt:file]查询回购时,我没有得到任何内容,只有nt:file元数据。当我查询[jcr:content]和[jcr:data]时,我得到了相同的结

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

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

当我使用
select*from[nt:file]
查询回购时,我没有得到任何内容,只有
nt:file
元数据。当我查询
[jcr:content]
[jcr:data]
时,我得到了相同的结果


因此,我的问题是,一旦CSV文件进入存储库,如何查询该文件中的数据?

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

要查询此内容,一种可能是构建并执行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论坛上