다음 클래스의 ClearModel() 메소드를 사용하여 모델에 입력 한 모든 데이터를 제거하려고합니다.Apache Jena : 모델의 모든 데이터 삭제
public class JenaDatabaseHelper {
private Model model;
private Dataset dataset;
public Model getJenaModel(){
if(model!=null){
return model;
}
else{
String directory = "JenaDatabase" ;
try{
dataset = TDBFactory.createDataset(directory);
model = dataset.getNamedModel("DB");
return model;
}catch(Exception e){
System.out.println("Error when retrieving model: "+e.getMessage());
}
}
return null;
}
public void SaveAndCloseModel(){
if(model!=null && dataset!=null){
model.commit();
model.close();
dataset.close();
}
}
public void ClearModel(){
if(model!=null && dataset!=null){
model.removeAll();
SaveAndCloseModel();
}
}
그러나 응용 프로그램을 다시 시작하고 명령문을 반복 할 때 아무 것도 제거되지 않았습니다.
'Model.removeAll()'과'Statement.remove()'는 모두 Jena 단위 테스트에서 광범위하게 테스트되었으므로 확실히 작동합니다. 문제가 무엇인지 진단하려면 정확한 설정에 대한 세부 정보가 필요합니다. 모델에 아직 데이터가 있는지 어떻게 알 수 있습니까? –
나는 가득 차있는 종류로 질문을 새롭게했다. TDB를 사용하여 모델을 저장하지만 Model.removeAll()이 여전히 작동하지 않아야합니까? ClearModel() 메서드를 사용한 후 응용 프로그램을 다시 시작할 때 데이터가 그대로 남아 있고 변경된 내용이없는 것을 반복합니다. – Matt