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