Spring Framework, Java uygulamalarında transaction yönetimi için bir katman sağlar. Transactional yapısı, veritabanı işlemlerinde güvenli bir şekilde işlem yapmak için kullanılır.
Transactional yapısı, işlemlerin birbirleriyle ilişkili olarak gerçekleştirilmesini ve hata durumunda işlemlerin geri alınmasını sağlar. Bu, veritabanındaki verilerin konsisten bir şekilde tutulmasını sağlar.
Propagation yapısı ise, bir işlem içinde başka bir işlemi çağırmak için kullanılır. Bu, bir işlem içinde başka bir işlemi çağırdığınızda, iki işlem arasındaki transaction yönetimini nasıl yapacağını belirler.
Spring Framework, 5 farklı propagation seviyesini destekler :
- REQUIRED : Bir işlem var ise, mevcut işlemi kullanır, yoksa yeni bir işlem başlatır.
- REQUIRES_NEW : Her zaman yeni bir işlem başlatır.
- MANDATORY : Bir işlem var ise, mevcut işlemi kullanır. Yoksa, bir hata oluşur.
- SUPPORTS : Bir işlem var ise, mevcut işlemi kullanır. Yoksa, işlem yapmaz.
- NOT_SUPPORTED : Bir işlem var ise, mevcut işlemi askıya alır. Yoksa, işlem yapmaz.
Propagation yapısı, Spring Framework tarafından @Transactional anotasyonu ile tanımlanır