Twitter Youtube Github
Burak Kutbay'ın Kişisel Blog'u |

Type and hit Enter to search

  • Etkinliklerim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • JSP
  • Java 21
  • Java 8
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale
Spring Boot

Spring Boot Transaction, Isolation, Propagation ve RollBack

Paylaş

Spring Boot projelerinde Transactional işlemlerde bize yardımcı olan yöntemler mevcut.

İçindekiler

Toggle
  • @Transactional
  • Propagation
    • – REQUIRED
    • – REQUIRES_NEW
    • – NESTED
    • – SUPPORTS
    • – NOT_SUPPORTED
    • – NEVER
    • – MANDATORY
  • readOnly
  • timeout
  • rollbackFor
  • isolation
    • – READ_UNCOMMITTED
    • – READ_COMMITTED
    • – REPEATABLE_READ
  • – SERIALIZABLE

@Transactional

Projemizde @Transactional anotasyonu ekleyerek ilgili metot ya da sınıfa belirtmemiz yeterli olmakla birlikte transaction işlemini başlatma ya da bitirme gibi ek bir belirtime gerek kalmaz.

Transactional anotasyonunu ekledikten sonra aşağıdaki propertyler ile birlikte iş akışına göre farklı davranışlar veririz. Şimdi bu propertyleri açıklayacağım.

Spring Boot Transactional Nedir
Spring Boot Transactional Nedir

Propagation

Transaction başlatıldıktan sonraki davranışları ele aldığımız propertydir. Bu tanımlamaya göre sonraki transaction davranışı belirlenir.

– REQUIRED

Default tanımlamadır. Transaction yoksa açılır eğer varsa diğer transaction bundan devam etmesini sağlamakta.

– REQUIRES_NEW

Aktif bir transaction işlemi varsa diğer işlem ayrı bir transaction olarak açılır ve var olan transaction bittikten sonra bekleyen transaction başlamakta. Her transaction birbirinden farklı bir instance olarak işlem devam eder.

– NESTED

JDBC işlemlerimizde hata durumlarında rollback yapabilmek için geliştirilmiş bir transaction özellik. JDBC işlemlerimizde bu özelliği kullanarak rahat bir şekilde transactional işlemi yapabiliriz.

– SUPPORTS

Yeni bir transaction açılmayıp. Aktif bir transaction varsa katılması sağlanır.

– NOT_SUPPORTED

Aktif transaction varsa bekletilmekte. Transaction açamayız. Transactionsuz çalışır.

– NEVER

Transaction durumlarında exception fırlatıp. İşlem sonlanmaktadır

– MANDATORY

Transaction yoksa exception oluşturulmakta.

readOnly

Sadece okuma yapacak şekilde bir transaction açılmaktadır.

timeout

Tanımlanan süre içersinde transaction gerçekleşmezse rollback işlemi başlatılmaktadır.

rollbackFor

Check exception durumlarında yani bizim kontrolümüzde oluşan hatalarda rollback edilirken belirlemiş olduğumuz class Throwable sınıfından türetilmelidir.

Unchecked exception durumlarında rollback işlemi yapılır.

isolation

Spring Boot projemizde birden fazla transaction varsa her bir transactiondaki veriyi manipule etmek için kullanılmaktadır. Veritabanı işlemleri sonucu oluşan davranışlara göre karar verme durumunda kullanırız ve isolationun seviyeleri bulunmaktadır.

– READ_UNCOMMITTED

uncomitted durumundaki veriyi bir başka transaction okunmasına izin sağlamakta.

– READ_COMMITTED

Transactionun commit olduğu veri okunabilmektedir.

– REPEATABLE_READ

İki farklı ve aynı anda çalışan transactionun farklı veri okunmasına izin verilmez.

– SERIALIZABLE

Aynı anda çalışan 2 farklı transaction sadece select sorgusuna izin verilir.

Tags:

spring boot dersspring boot derslerispring boot transactionspring örneklerispring uygulama örneği

Paylaş

Diğer Yazılar

Java Multithreading Nedir
Previous

Java’da Multithreading Dersleri

blank
Next

sshpass ile SSH Bağlantısı Yapmak

Next
blank
31 Aralık 2021

sshpass ile SSH Bağlantısı Yapmak

Previews
30 Aralık 2021

Java’da Multithreading Dersleri

Java Multithreading Nedir

No Comment! Be the first one.

Bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

İlgini Çekebilir

Chaos Monkey Spring Boot Uygulama Ornegi

Chaos Monkey Nedir? #1 Uygulamanızın Sınırlarını Test Edin

TestContainers Nedir Spring Boot MongoDB Uygulama Örneği

TestContainers ile Spring Boot & MongoDB Test İşlemleri

Spring Boot Dersleri @ConditionalOnExpression Uygulama Ornegi

Spring Boot @ConditionalOnExpression Nedir? Uygulama Örneği

Spring Boot Dersleri Content Negotiation Uygulama Örneği

Spring Boot Content Negotiation XML – JSON Uygulama Örneği

Burak Kutbay'ın Kişisel Blog'u |

© 2008 - ∞, Her hakkı saklıdır.

Link

  • Hakkımda
  • İletişim
  • Arşiv

Kategori

Cloud
Node.js
Java 24
Android
Struts
Röportaj
Gradle
Amazon Web Services
Vue.js
Video
Redis
Spring Boot 3.0
Debezium
Mikroservis Mimarisi
Spring Native
Spring Cloud Stream
Etkinlikler
XCode
JPA
Objective C
iPhone Uygulama Geliştirme
PostgreSQL
Spring Security
MongoDB
Java 21
Spring Data
Apache Kafka
Yaptığım Projeler
Servlet
Git
Maven
Design Patterns
DevOps
Linux
Spring Jdbc Template
RabbitMQ
JDBC
PrimeFaces
Manset
Google
Spring
Spring MVC
Spring Cloud
OCA Java SE 8
Quarkus
Spring Core
Microsoft
Veritabanı
Java SE
Tanıyalım
Hibernate
Teknoloji
Okuduğum Kitaplar
Java Server Faces
Yazılım Mühendisliği
C Sharp
Spring Boot
Java
Günlüğüm
Java Server Page
Makale

Takip Et

Twitter Youtube Github
  • Etkinliklerim
  • Quarkus
  • Spring Cloud
  • Spring Boot
  • Spring JDBC Template
  • Spring MVC
  • RabbitMQ
  • Hibernate
  • JSP
  • Java 21
  • Java 8
  • Java Server Faces
  • PrimeFaces
  • Servlet
  • JDBC
  • JSTL
  • / Diğer
    • Ünlü Bilişimciler
    • C Sharp
    • Kütüphane
    • Makale