MongoTemplate插入状态

时间:2016-09-30 19:33:55

标签: java mongodb spring-data

我想创建一个将用户保存到数据库的DAO。它们应该有唯一的登录,因为mongo db没有事务,所以它有点问题。我有一个用户类,看起来像这样:

@Document(collection = "users")
public class User {

@Id
private String id;

@Indexed(unique = true)
private String username;

... }

在我的DAO中我想保存新用户

mongoTemplate.insert(user);

但是,如果用户创建是否成功,我如何才能得到将响应发送到我的前端的结果?

1 个答案:

答案 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}