Spring Data MongoDB始终将对象标识为新对象

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

我有以下情况:

@Document
@AllArgsConstructor
@Getter
class DocumentClass {
private final DomainObject domainObj;
}

@Getter
@Setter
@NoArgsConstructor
class DomainObject{
@Id
private String id;
}

问题是,Spring Data mongo存储库在封装的对象中看不到,并且始终将文档实例标识为用于新文档。我想将域的ID保留为文档的ID。我怎样才能做到这一点?我试图添加一个侦听器,但没有帮助。

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

我要做的是在Document类中包含ObjectId _id字段,并覆盖Mongo存储库的save方法。我已经覆盖了保存,以便它检查嵌入的id是否存在以及是否存在,我将Object id设置为较新的“版本”。通过这样做,Spring Data可以将对象标识为数据库中已经存在的对象。

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