При saveAndFlush зміни в цій команді одразу оновлюються в базі даних. У випадку збереження це не обов'язково так і може залишатися в пам'яті лише до того часу, поки не буде виконано команду на змивання або фіксацію.
Зверніть увагу, що навіть якщо ви оновлюєте зміни в транзакції і не фіксуєте їх, зміни все одно не будуть видимі зовнішній транзакції, доки не будуть зафіксовані в цій транзакції.
У вашому випадку, можливо, ви використовуєте якийсь механізм транзакцій, який видасть вам команду на коміт, якщо все гаразд.
Використовуйте метод JPA saveAndFlush()
Реалізувати збільшення та модифікацію
Примітка: керуючий шар має фільтрувати параметри,
saveAndFlush Цей метод спочатку визначає, чи використовувати метод persisting, чи метод merge на основі ID==null Він вирішуватиме, чи використовувати insert чи update залежно від того, чи зафіксовано ID у базі даних
Ми розглядаємо різницю шляхом декомпіляції вихідного коду Java
IDEA_ ярлик для пошуку реалізації інтерфейсу
Ctrl у стилі IDEA + alt +B
Ctrl у стилі Eclipse +T
Інтерфейс збереження:
Метод реалізації:
Інтерфейс збереження AndFlush:
Метод реалізації:
Як видно з вихідного коду, викликаючи метод saveAndFlush,saveAndFlush викликає наш метод збереження, а потім метод промивання。
(Кінець)
|