spring-data-mongo,如何 return 返回 mongo 中已保存对象的 _id?

spring-data-mongo, how to return _id back for saved objects from mongo?

我是 Spring 数据 mongo 的新手。我有相同名字的文件说约翰,但中间名和姓氏不同。

同样来自 UI,一些学生填充数据(通过表单提供数据)也有 FirstName 说 John 并且 MiddleName 和 LastName 会有所不同。

现在,当我使用 MongoTemplate 将用户对象(具有 FirstName、MiddleName、LastName、Age、Sex 等等)保存到 mongo 中时。我需要 return 返回那些每个保存的用户对象的“_id”(如果我们没有明确提供它,默认情况下 mongo 创建)。

您能否提供任何示例/指导?请帮忙。

Spring 数据 MongoDB 将使用生成的标识符值自动填充域对象的标识符 属性。

@Document
class User {

  ObjectId id; // by convention, use @Id if you want to use a different name
  String firstname, lastname;
  …
}

如果此 class 的对象在 id 属性 设置为 null 的情况下持久化,该对象将在其后设置 属性已通过 MongoTempalte.

保留

所有这些也在reference documentation中描述。

如果您使用 mongo 模板保存,您的对象 ID 将在对象插入(如 Oliver Gierke 所写)后设置,因此您可以这样做。

//User object annotated with @Document 
User user = new User(String name);
user.setWhatever(something);
mongoTemplate.save(user);
//now the user object should be populated with generated id;
return  user.getId();

但您可以使用普通的 CrudRepository 并将其与

一起使用

<mongo:repositories base-package="your.package" />