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