Рассмотрим следующий класс Java.
class Transaction {
@Id
public String id;
public String firstProperty;
public String secondProperty;
}
class TransactionRepository extends MongoRepository<TransactionInfo , String> {
...
}
В Java выполняется следующий код:
Transaction transaction = new Transaction("T1");
transaction.setFirstProperty("first");
transactionRepository.save(transaction);
Следующий документ создан.
{
_id:123,
firstProperty: "first"
}
Если этот фрагмент кода будет выполнен позже:
Transaction transaction = new Transaction("T1");
transaction.setSecondProperty("second");
transactionRepository.save(transaction);
Ожидаемый документ:
{
_id:123,
firstProperty: "first",
secondProperty: "second"
}
Фактический документ:
{
_id:123,
secondProperty: "second"
}
Из того, что я прочитал в документации MongoDB, я ожидаю, что документ будет обновлен с помощью «secondProperty», но это приведет к удалению «firstProperty». Я думаю, что документ создается снова, а не обновляется. Пожалуйста, дайте мне знать, если я что-то упускаю.




Ваш код не компилируется, конструктор
Transactionотсутствует. Какова цель аргумента конструктора? Откуда взялось странное значение id?TransactionInfoдолжен бытьTransaction? Почему вы ожидаете, что второйTransactionкаким-то образом будет объединен с существующим состоянием в базе данных? На какую часть документации вы имеете в виду?