사용자가 입력 할 수있는 중복 값을 확인하는 필터를 추가하려고합니다. 내 쿼리에서 어디서 잘못 될지 잘 모르겠습니다.중복 값을 필터링합니다.
내 검색어가 루프에 입력되어 이름이 이미 있는지 확인하지 않습니다.
저는 Google이 할 수있는 일에 상당히 익숙합니다. 누군가가 내 문제를 해결할 수있는 방법이나 더 나은 솔루션이 있는지 알려주면.
else if (commandEls[0].equals("add_director")) {
String name = commandEls[1];
String gender = commandEls[2];
String date_of_birth = commandEls[3];
boolean duplicate = false;
//add a director record with the given fields to the datastore, don't forget to check for duplicates
Entity addDirectorEntity = new Entity("Director");
// check if the entity already exits
// if !duplicate add, else "Already exisits"
Query directorExists = new Query("Movies");
// Director Name is the primary key
directorExists.addFilter("directorName",Query.FilterOperator.EQUAL, name);
System.out.print(name);
PreparedQuery preparedDirectorQuery = datastore.prepare(directorExists);
System.out.print("outside");
for(Entity directorResult : preparedDirectorQuery.asIterable()){
// result already exists in the database
String dName = (String) directorResult.getProperty(name);
System.out.print(dName);
System.out.print("finish");
duplicate = true;
}
if(!duplicate){
addDirectorEntity.setProperty("directorName",name);
addDirectorEntity.setProperty("directorGender",gender);
addDirectorEntity.setProperty("directorDOB",date_of_birth);
try{
datastore.put(addDirectorEntity);
results = "Command executed successfully!";
}
catch(Exception e){
results = "Error";
}
}
else {
results = "Director already exists!";
}
}