JPARepository save () не обновляет все значения в БД.Но дает результат - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь обновить поля таблицы MySQL с помощью JPARepository save ().Но save () обновляет нулевое поле, но не обновляет поля, в которых уже есть некоторые значения.

значения в настоящее время в БД: place: null itemcount: 2

Новые значения передаются в temp для обновленияplace: Noplace itemcount: 1

Я пробовал с 1. save (), 2. saveAndFlush с @Transaction 3. Снова извлекаем сущность перед обновлением.

public Cons updateCons(Cons temp, Cons con) {

Cons tempCons = consRepository.findOneByIdAndConstId(cons.getId(),cons.getConsId());
   // tempCons.setId(cons.getId());

    log.info("before saving cons :{}, count={}",consignment.getConsId(),temp.getItemCount());
    tempCons.setItemCount(temp.getItemCount());
    tempCons.setplaceStatus("Noplace"); // this filed is currently null


    Cons result = consRepository.saveAndFlush(tempCons);
    log.info("after saving cons :{}, count={}",cons.getConsId(),result.getItemCount()); // logs the updated value on itemCount.

}

Ожидаемый результат: itemcount должен быть обновлен с новым значением, место должно быть обновлено жестко закодированным значением "Noplace"

Фактический результат: itemcount не обновлен в db с новым значением.но место обновляется с помощью "Noplace", но в журналах печатается новое значение в виде количества.

1 Ответ

0 голосов
/ 27 марта 2019

Полагаю, вы либо меняете значение снова (после распечатки журналов другим способом), либо запускаете его как часть транзакции, которая не выполняется где-то по пути и поэтому не фиксируется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...