Spring Data MongoDB всегда идентифицирует объект как новый - PullRequest
0 голосов
/ 12 января 2020

У меня следующая ситуация:

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

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

Проблема в том, что хранилище данных Spring mon go не видит, что находится в инкапсулированном объекте, и всегда идентифицирует экземпляр документа как предназначенный для новый документ. Я хотел бы сохранить идентификатор домена в качестве идентификатора документа. Как я могу это сделать? Я пытался добавить слушателя, но это не помогает.

1 Ответ

0 голосов
/ 13 января 2020

Что мне нужно было сделать, это включить в класс Document поле ObjectId _id и переписать метод сохранения репозитория Mon go. Я перезаписал сохранение, чтобы оно проверяло встроенный идентификатор, если он существует, и если он существует, я беру идентификатор объекта и устанавливаю его на более новую «версию». Делая это, Spring Data идентифицирует объект как уже существующий в базе данных.

...