Spring JPA сохраняет обновление в определенном порядке - PullRequest
0 голосов
/ 27 августа 2018

Фрагмент кода в моей весенней службе

для обновления существующей записи

      //Credit Cards
      find.getCreditCards().forEach(creditCard -> {
        creditCard.setActiveVersion(false);
        businessPartnerCreditCardRepository.save(creditCard);
      });

А затем вставьте новый 1

//Credit Cards
      businessPartner.getCreditCards().forEach(creditCard -> {
        creditCard.setVersion(find.getVersion() + 1);
        creditCard.setActiveVersion(true);
        businessPartnerCreditCardRepository.save(creditCard);
      });

Проблема в том, что Spring JPA сначала запускает оператор INSERT , а затем UPDATE вместо того, чтобы сначала запустить UPDATE , а затем INSERT.

почему мне нужен определенный порядок от UPDATE до INSERT

Существует ограничение БД, что одновременно активна только 1 запись.итак, когда JPA вставляют без обновления .. БД выкрикивает и отката на .....: D

Любое обновление?

1 Ответ

0 голосов
/ 27 августа 2018

Сделайте сброс после обновления.

Вы можете использовать saveAndFlush из JpaRepository или написать пользовательский метод в своем хранилище, где вставьте EntityManager и выполните его очистку.

Другой вариант - сделать ограничение отложенным, чтобы оно проверялось только в конце транзакции.

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