Я использую Spring Boot и MongoDB и могу успешно сохранить документ в MongoDB.Когда я пытался вставить второй документ, он показывает duplicatekeyexception
.Общее сообщение об исключении выглядит следующим образом:
com.mongodb.DuplicateKeyException: запись не удалась с кодом ошибки 11000 и сообщением об ошибке 'E11000 коллекция повторяющихся ошибок: индекс Football_Admin.SignUp: id ключ дубликата: {: 0} '
Код выглядит следующим образом:
SignUpRepository.java
package com.admin.Repository;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;
import com.admin.Model.SignUp;
@Repository
public interface SignUpRepository extends MongoRepository<SignUp,String>{
}
Контроллер
@Controller
@RequestMapping("/SignIn_Up")
public class HomeController {
@Autowired
SignUpRepository repository;
@RequestMapping(value = "/addadmin", method = RequestMethod.POST)
public String addAdmin(@ModelAttribute("SignUp") SignUp sign) throws NoSuchAlgorithmException,InvalidKeySpecException {
String originalPassword = sign.getPassword();
String generatedSecuredPasswordHash = generateStorngPasswordHash(originalPassword);
String email = sign.getEmail();
String fullname = sign.getFullName();
try {
sign.setEmail(email);
sign.setFullName(fullname);
sign.setPassword(generatedSecuredPasswordHash);
repository.save(sign);
}
catch (DuplicateKeyException e) {
e.printStackTrace();
}
System.out.println(generatedSecuredPasswordHash);
System.out.println("Email name is:"+sign.getEmail());
System.out.println("Full Name is:"+sign.getFullName());
System.out.println("Password is:"+sign.getPassword());
return "welcome";
}
Сущность
package com.admin.Model;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document(collection="SignUp")
public class SignUp {
@Id
private int id;
private String fullName;
private String email;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getFullName() {
return fullName;
}
public void setFullName(String fullName) {
this.fullName = fullName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String toString() {
return id+""+fullName+""+password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}