在我的機器中,base/data目錄包含多個存儲庫。但是當我從java程序訪問這個數據目錄時,它只給我提供SYSTEM存儲庫記錄。SYSTEM存儲庫未顯示存儲庫詳細信息
代碼檢索庫:
String dataDir = "D:\\SesameStorage\\data\\"
LocalRepositoryManager localManager = new LocalRepositoryManager(new File(dataDir));
localManager.initialize();
// Get all repositories
Collection<Repository> repos = localManager.getAllRepositories();
System.out.println("LocalRepositoryManager All repositories : "
+ repos.size());
for (Repository repo : repos) {
System.out.println("This is : " + repo.getDataDir());
RepositoryResult<Statement> idStatementIter = repo
.getConnection().getStatements(null,
RepositoryConfigSchema.REPOSITORYID, null,
true, new Resource[0]);
Statement idStatement;
try {
while (idStatementIter.hasNext()) {
idStatement = (Statement) idStatementIter.next();
if ((idStatement.getObject() instanceof Literal)) {
Literal idLiteral = (Literal) idStatement
.getObject();
System.out.println("idLiteral.getLabel() : "
+ idLiteral.getLabel());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
Output :
LocalRepositoryManager All repositories : 1
This is : D:\SemanticStorage\data\repositories\SYSTEM
idLiteral.getLabel() : SYSTEM
添加存儲庫LocalRepositoryManager:
String repositoryName = "data.ttl";
RepositoryConfig repConfig = new RepositoryConfig(repositoryName);
SailRepositoryConfig config = new SailRepositoryConfig(new MemoryStoreConfig());
repConfig.setRepositoryImplConfig(config);
manager.addRepositoryConfig(repConfig);
獲取庫對象:
Repository repository = manager.getRepository(repositoryName);
repository.initialize();
我已經成功添加新的存儲庫,以LocalRepositoryManager和它顯示我的存儲庫數量爲2.但是當我重新啓動該應用程序僅向我顯示一個存儲庫,即SYSTEM存儲庫。
我的SYSTEM存儲庫沒有得到更新,請告訴我,我應該如何在我的LocalRepositoryManager對象中加載該數據目錄。
我NativeStoreConfig也試過,但沒有奏效。 – sagarg