Відповіді:
Увімкнено saveAndFlush
, зміни в цій команді будуть негайно внесені до БД. З save
цим, це не обов'язково істинно, і воно може залишатися просто в пам’яті, доки не будуть видані команди flush
або commit
команди.
Але майте на увазі, що навіть якщо ви очищаєте зміни транзакції та не здійснюєте їх, зміни все одно не будуть видимі для зовнішніх транзакцій, поки не буде здійснено цю транзакцію.
У вашому випадку ви, ймовірно, використовуєте якийсь механізм транзакцій, який видає commit
команду для вас, якщо все працює добре.
Залежно від режиму сну в режимі сплячого режиму, який ви використовуєте ( AUTO
є типовим), ви save
можете або не можете записати свої зміни в БД відразу. Під час дзвінка saveAndFlush
ви здійснюєте синхронізацію стану вашої моделі з БД.
Якщо ви використовуєте режим автоматичного промивання AUTO, і ви використовуєте додаток, щоб спершу зберегти, а потім знову вибрати дані, ви не побачите різниці в поведінці між save()
і saveAndFlush()
тому, що вибір спочатку запускає флеш. Дивіться документацію .
save
сутність і знову та сама, ви маєте на увазі, save
що друга команда не викине виключення для дублювання, наприклад ??