ich meine Anwendung, wenn Benutzer versuchen, die Daten, die er von der Form eingeben anmeldet und wird in zwei verschiedene DokumentWird dies als eine Transaktion in Mongodb betrachtet?
public Result schoolSignUp(FormSchoolSignUp signUpForm){
User userEntered=null;
if(signUpForm.getEmail()!=null){
User user=this.userService.getUser(signUpForm.getEmail());
// user null means there is no user in data base
if(user==null){
List<String> roles=new ArrayList<>();
roles.add("ROLE_SCHOOL");
// data is assigned to user
this.user.setUserName(signUpForm.getEmail());
this.user.setPassword(signUpForm.getPassword());
this.user.setRoles(roles);
//user collection data is stored in the data base
userEntered=this.userService.saveUser(this.user); // first
write operation
}
else{
this.result.setResult(false);
this.result.setMessage("User Already Exist");
}
}
else{
this.result.setResult(false);
this.result.setMessage("User Name is not entered");
}
if(userEntered!=null){
// data is assigned to school
this.school.setName(signUpForm.getName());
this.school.setUserId(signUpForm.getEmail());
this.school.setUserId(userEntered.getUserName());
this.school.setAddress(signUpForm.getAddress());
this.school.setState(signUpForm.getState());
this.school.setCity(signUpForm.getCity());
//school collection is stored in the data base
this.schoolRepository.insert(this.school);//second write
operation
this.result.setResult(true);
this.result.setMessage("Success");
}
return this.result;
}
gespeichert
mein Problem ist, wenn etwas schief gelaufen ist zwischen dem ersten Schreib und die zweite Schreib es möglich ist, Daten haben eingegeben im ersten dokument und das zweite dokument ist leer, also wird diese situation als transaktion betrachtet, wenn ja, wie sollte ich vermeiden, dass ich darüber nachdenke, den anmeldeprozess zu ändern oder sollte ich eine andere option wie zwei phase commit in betracht ziehen.
ich die Schule Objekt nicht einbetten können, weil Benutzer unterschiedliche Rollen haben .user ein Lehrer oder Schüler sein kann i Ich dachte darüber nach, die Anmeldeseite zu ändern, so dass ich zunächst nur Daten zur Benutzersammlung erhalte und nach der Anmeldung abhängig von den Rollen andere Daten erhalte, ist es der richtige Ansatz, dies zu tun? – ashutosh