Ответы:
Вкл. saveAndFlush, В этой команде изменения будут немедленно сброшены в БД. With save, это не обязательно верно и может оставаться только в памяти, пока не будут введены команды flushили commit.
Но имейте в виду, что даже если вы сбрасываете изменения в транзакции и не фиксируете их, изменения все равно не будут видны внешним транзакциям до фиксации в этой транзакции.
В вашем случае вы, вероятно, используете какой-то механизм транзакций, который выдает commitвам команду, если все работает нормально.
В зависимости от того, какой режим спящего режима вы используете ( AUTOпо умолчанию), вы saveможете сразу или не записать ваши изменения в БД. Когда вы звоните, saveAndFlushвы обеспечиваете синхронизацию состояния вашей модели с БД.
Если вы используете режим очистки AUTO, и вы используете свое приложение, чтобы сначала сохранить, а затем снова выбрать данные, вы не увидите разницы в bahvior между save()и, saveAndFlush()потому что выбор сначала запускает сброс. См. Документацию .
saveявляюсь сущностью и снова такой же, вы имеете в виду, saveчто вторая команда не будет генерировать исключение для дублирования, например ??