Spring data mongodb 在保存时创建 ObjectId,在更新时创建 String _id

问题描述 投票:0回答:1

我有一个实体:

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

    @Id
    @Field("_id")
    private String id;

当我通过 spring 存储库保存实体时,它会在数据库中创建 Id:

"_id" : ObjectId("626ac45dbf00d30e6a67ac73")

当我选择该实体、更新字段并再次保存它时,它会在数据库中创建一个带有 ID 的新项目:

"_id" : "626ac45dbf00d30e6a67ac73"

如何在创建和更新实体上保持相同的 id?

java mongodb spring-data spring-data-mongodb
1个回答
0
投票

尝试在您的班级中使用以下属性:

@Id
@MongoId
@org.springframework.data.annotation.Id
@Column(name = "myId")
private String myId;

@MongoId - 将类中定义的 ID 转换为 MongoDB 中文档的主 ID。这样,它就不会生成默认的ObjectId(MongoDB的默认ID)。

© www.soinside.com 2019 - 2024. All rights reserved.