Saya mencoba mempelajari data musim semi JPA dengan menguji beberapa operasi CRUD via JpaRepository
.
Saya menemukan dua metode save
dan saveAndFlush
. Saya tidak mendapatkan perbedaan antara keduanya. Saat menelepon save
juga perubahan saya diselamatkan ke dalam basis data jadi apa gunanya saveAndFlush
.
Bergantung pada mode siram hibernasi yang Anda gunakan (
AUTO
adalah default)save
mungkin atau mungkin tidak langsung menulis perubahan Anda ke DB. Saat Anda menelepon,saveAndFlush
Anda sedang memaksakan sinkronisasi kondisi model Anda dengan DB.Jika Anda menggunakan mode flush AUTO dan Anda menggunakan aplikasi Anda untuk menyimpan terlebih dahulu dan kemudian memilih data lagi, Anda tidak akan melihat perbedaan dalam bahvior antara
save()
dansaveAndFlush()
karena pilih memicu flush pertama. Lihat dokumentasinya .sumber
save
suatu entitas dan lagi yang sama, maksud Anda dengansave
perintah kedua tidak akan memberikan pengecualian untuk duplikasi misalnya ??save
idempoten. Lihat utas ini untuk lebih jelasnya.