我有一个实体:
@Document(collection = "users")
@Getter
@Setter
public class User {
@Id
@Field("_id")
private String id;
当我通过 spring 存储库保存实体时,它会在数据库中创建 Id:
"_id" : ObjectId("626ac45dbf00d30e6a67ac73")
当我选择该实体、更新字段并再次保存它时,它会在数据库中创建一个带有 ID 的新项目:
"_id" : "626ac45dbf00d30e6a67ac73"
如何在创建和更新实体上保持相同的 id?
尝试在您的班级中使用以下属性:
@Id
@MongoId
@org.springframework.data.annotation.Id
@Column(name = "myId")
private String myId;
@MongoId - 将类中定义的 ID 转换为 MongoDB 中文档的主 ID。这样,它就不会生成默认的ObjectId(MongoDB的默认ID)。