Junior — Middle
İşlem yönetiminde yayılma seviyelerinin ne anlaşıldığını açıklayabilir misiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
İşlem yönetiminde yayılma seviyeleri, kendileri de işlemli olabilecek yöntemleri çağırırken bir işlemin nasıl davranacağını belirler. Bu, bir yöntemin mevcut bir işlemi kullanıp kullanmayacağını, yeni bir işlem oluşturup oluşturmayacağını veya işlem olmadan çalışıp çalışmayacağını anlamak için önemlidir.
Spring (Java) içindeki temel yayılma seviyeleri:
- REQUIRED (varsayılan): mevcut bir işlem varsa, metoda ona katılır, aksi takdirde yeni bir işlem oluşturulur.
- REQUIRES_NEW: her zaman yeni bir işlem oluşturur, mevcut (varsa) işlem askıya alınır.
- SUPPORTS: bir işlem varsa, yöntemin içinde çalışır, aksi takdirde işlem olmadan.
- NOT_SUPPORTED: yöntem her zaman işlem olmadan çalışır, mevcut işlem askıya alınır.
- MANDATORY: yöntem, mevcut bir işlemde çalışmalıdır, aksi takdirde istisna fırlatılır.
- NEVER: yöntem işlemde çalışmamalıdır, aksi takdirde istisna fırlatılır.
- NESTED: bir işlem varsa, iç içe geçmiş (savepoint) bir işlem oluşturulur, aksi takdirde yeni bir işlem oluşturulur.
Örnek:
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void saveData() {
// Bu yöntem her zaman yeni bir işlemde
}