Yanıtlar:
On saveAndFlush
, değişiklikler bu komutta derhal DB'ye aktarılacaktır. İle save
, bu kadar zaman doğru olmayabilir ve bellekte sadece kalmak olabilir flush
ya dacommit
komutlar verilir.
Ama işlem değişiklikleri temizlemek ve onları taahhüt olmasa bile, değişiklikler yine bilin olmayacak bu işlemde taahhüt kadar dışarıda işlemlere görülebilir.
Sizin durumunuzda, muhtemelen commit
her şey yolunda giderse sizin için komut veren bir tür işlem mekanizması kullanıyorsunuzdur .
Kullandığınız hazırda bekletme temizleme moduna bağlı olarak ( AUTO
varsayılandır) save
değişikliklerinizi hemen DB'ye yazabilir veya yazmayabilir. Aradığınızda saveAndFlush
, model durumunuzun DB ile senkronizasyonunu zorlarsınız.
AUTO temizleme modunu kullanırsanız ve uygulamanızı önce verileri kaydetmek ve ardından tekrar seçmek için kullanıyorsanız, arasında bahvior'da bir fark görmezsiniz save()
ve saveAndFlush()
select önce bir sifonu tetikler. Belgelere bakın .
save
bir varlık ve yine aynıysam save
, ikinci komutla, örneğin çoğaltma için bir istisna atmayacağını mı kastediyorsunuz ?
save
idempotent olduğu anlaşılıyor . Daha fazla ayrıntı için bu ileti dizisine bakın.