10 Nisan 2023 Pazartesi

SpringData JpaRepository.saveAndFlush metodu - Kullanmayın

Giriş
Normalde JPA sağlayıcısı save() işlemini hemen veri tabanına göndermez. Optimizasyon amaçlı biraz bekletir. saveAndFlush () JPA sağlayıcısını işlemin hemen veri tabanında uygulanmasını sağlar.

İmzası şöyle.
PaymentMethod saveAndFlush(PaymentMethods entity);
Örnek
Tabloya yapılan işlemin hemen görülmesi için kullanılır. Şöyle yaparız.
@Transactional
public void saveAndGenerateResult(Data data) {
    saveDataInTableA(data.someAmountForA);
    saveDataInTableB(data.someAmountForB);
    callAnAggregatedFunction(data);
}

public void saveDataInTableA(DataA a) {
    tableARepository.saveAndFlush(a);
}

public void saveDataInTableA(DataB b) {
    tableBRepository.saveAndFlush(b);
}

public void callAnAggregatedFunction() {
  // Do something based on the data saved from the beginning in Table A and Table B
}

Hiç yorum yok:

Yorum Gönder