我想创建一个将用户保存到数据库的DAO。它们应该有唯一的登录,因为mongo db没有事务,所以它有点问题。我有一个用户类,看起来像这样:
@Document(collection = "users")
public class User {
@Id
private String id;
@Indexed(unique = true)
private String username;
... }
在我的DAO中我想保存新用户
mongoTemplate.insert(user);
但是,如果用户创建是否成功,我如何才能得到将响应发送到我的前端的结果?
答案 0 :(得分:1)
违反唯一索引时,API会抛出org.springframework.dao.DuplicateKeyException
。
示例代码: -
try {
mongoOperations.insert(order);
} catch (DuplicateKeyException de) {
de.printStackTrace();
}
违反唯一索引时的异常消息: -
org.springframework.dao.DuplicateKeyException: { "serverUsed" : "127.0.0.1:27017" , "ok" : 1 , "n" : 0 , "err" : "E11000 duplicate key error collection: localhost.order index: user_1 dup key: { : \"good\" }" , "code" : 11000}; nested exception is com.mongodb.MongoException$DuplicateKey: { "serverUsed" : "127.0.0.1:27017" , "ok" : 1 , "n" : 0 , "err" : "E11000 duplicate key error collection: localhost.order index: user_1 dup key: { : \"good\" }" , "code" : 11000}