Скопируйте _id в новое поле при создании новых документов (сохранить) с использованием данных Spring mongoDB - PullRequest
0 голосов
/ 06 мая 2020

Я использую Spring Data для mongoDB.

Для моего фиктивного объекта

{
    @Id
    private String id;
    private String type;        
    private String objectType;  
    private String umbrellaId;  
}

В моем объекте зонтик должен быть таким же, как сгенерированный идентификатор. Теперь мне нужно сделать следующее:

1. object = mongoRepo.save(object);
2. object.setumbrellaId(object.id);
3. object = mongoRepo.save(object);

Возможно ли, что это можно сделать с помощью всего одной операции save ()?

1 Ответ

0 голосов
/ 06 мая 2020

Что вы можете сделать, так это создать ObjectId при создании объекта

ObjectId id=new ObjectId()

Если вам нужно, чтобы это было String, тогда вы можете использовать toString() в конструкторе.

String id;

yourclass(){
      ObjectId obj=new ObjectId();
      this.id=obj.toSting();
}

Вы также можете сделать это для всех конструкторов аргументов. Теперь у вас есть идентификатор id при создании объекта, поэтому вы можете использовать его для umbrellaId;

...