Modeshape と modeshape-connector-jdbc-metadata を使用しています。ストレージ内のテーブルを表すすべてのノードを取得したいと考えています。そのノードには[mj:catalog]
mixin タイプがあります。
次のコードを使用してストレージをクエリしています:
public List getDatabases() throws RepositoryException {
// Obtain the query manager for the session ...
QueryManager queryManager = dbSession.getWorkspace().getQueryManager();
// Create a query object ...
Query query = queryManager.createQuery("SELECT * FROM [mj:table]"
, Query.JCR_SQL2);
// Execute the query and get the results ...
QueryResult result = query.execute();
// Iterate over the nodes in the results ...
NodeIterator nodeIter = result.getNodes();
List stringResult = new ArrayList();
while (nodeIter.hasNext()) {
stringResult.add(nodeIter.nextNode().getName());
}
return stringResult;
}
しかし、常に空のリストを返します。
また、次のクエリを使用してクエリを実行しようとしました:
SELECT unst.*, tbl.* FROM [nt:unstructured] AS unst
JOIN [mj:table] AS tbl ON ISSAMENODE(unst,tbl)
SELECT * FROM [nt:unstructured] WHERE [jcr:mixinTypes] = [mj:table]
しかし、結果は同じままです。私が間違っていることは何ですか?
助けてくれてありがとう。