Mongodb 春季JPA MongoRepository起因“;“复制密钥”;错误,而不是更新文档
我的模型中有一个字段ID:Mongodb 春季JPA MongoRepository起因“;“复制密钥”;错误,而不是更新文档,mongodb,spring-data,spring-data-jpa,spring-data-mongodb,Mongodb,Spring Data,Spring Data Jpa,Spring Data Mongodb,我的模型中有一个字段ID: @Field(value = "_id") private ObjectId Id; 和数据库条目: _id: ObjectId("5a7ecec9bd9bd72884484bc4") name:"October" 我的存储库只是扩展了MongoRepository,没有额外的方法 目标是更新文档 问题是MongoRepository没有任何update方法,所以我读了几篇文章,发现save方法会更新文档,如果在DB中找到具有相同“Id”的现有文档,则会创建新条目
@Field(value = "_id")
private ObjectId Id;
和数据库条目:
_id: ObjectId("5a7ecec9bd9bd72884484bc4")
name:"October"
我的存储库只是扩展了MongoRepository,没有额外的方法目标是更新文档
问题是MongoRepository没有任何
update
方法,所以我读了几篇文章,发现save
方法会更新文档,如果在DB中找到具有相同“Id”的现有文档,则会创建新条目。另一种方法——insert
——不查找现有的“Id”,只尝试创建新文档。
据我所知,insert
可能会导致E11000重复密钥错误
,但在我的情况下,此错误会出现在两种方法中:save,insert
为什么
保存
会导致重复错误?使用MongoRepository更新文档有什么不同的方法吗?请发布您的存储库方法定义好吗?使用@Id注释而不是@Field(value=“\u Id”)