java - MongoTemplate 插入状态

标签 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);

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

最佳答案

当唯一索​​引被违反时,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}

关于java - MongoTemplate 插入状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39798877/

相关文章:

java - 复制 if 语句中创建的类的副本,可在该语句外部访问 (Java)

json - 使用 Python 从 MongoDB 文档创建 JSON 文件

java - 实现点击recycleView行的正确方法 - 传递模型本身

java - 绝对 uri : http://www. springsource.org/tags/form 无法在 web.xml 或随此应用程序部署的 jar 文件中解析

java - 在android Activity中显示docx文件的内容

mongodb - MongoDB 上的时区查询

node.js - 是否可以将额外的参数传递给 Mongoose 更新回调

java - Spring Boot 和 AngularJS 的安全性登录页面

java - 如何使用 spring CrudRepository 仅选择特定字段?

java - 使用 native 查询公开端点而不创建实体