【发布时间】:2018-05-24 12:20:44
【问题描述】:
我正在使用 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;
}
}
【问题讨论】:
-
你的实体是什么样的?
-
@MạnhQuyếtNguyễn 添加了实体。刷新页面
标签: spring mongodb spring-boot spring-data