Я пытаюсь изучить JPA данных Spring, тестируя некоторые операции CRUD через JpaRepository
.
Я столкнулся с двумя способами save
и saveAndFlush
. Я не понимаю разницы между этими двумя. При вызове save
также мои изменения сохраняются в базе данных, так что в чем польза saveAndFlush
.
В зависимости от того, какой режим спящего режима вы используете (
AUTO
по умолчанию), выsave
можете сразу или не записать ваши изменения в БД. Когда вы звоните,saveAndFlush
вы обеспечиваете синхронизацию состояния вашей модели с БД.Если вы используете режим очистки AUTO, и вы используете свое приложение, чтобы сначала сохранить, а затем снова выбрать данные, вы не увидите разницы в bahvior между
save()
и,saveAndFlush()
потому что выбор сначала запускает сброс. См. Документацию .источник
save
являюсь сущностью и снова такой же, вы имеете в виду,save
что вторая команда не будет генерировать исключение для дублирования, например ??save
идемпотентны. Смотрите эту ветку для более подробной информации.