Implementasi database transaction dengan Spring Boot dengan simulasi error dan rollback ketika terjadi kesalahan.
-
Create user database
createuser -P belajar Password: java
-
Create database
createdb -Obelajar belajartransaction
-
Jalankan aplikasi
mvn clean spring-boot:run
-
Cek saldo rekening
curl --request GET 'localhost:8080/rekening/r001/'
-
Cek histori transaksi
curl --request GET 'localhost:8080/rekening/r001/transaksi/'
-
Insert transaksi
curl --request POST 'localhost:8080/transaksi/' \ --header 'Content-Type: application/json' \ --data-raw '{ "rekening": { "id": "r001" }, "waktuTransaksi":"2020-12-31T13:59:59", "keterangan" : "Test transaksi", "nilai" : "10000" }'
-
Kondisi awal. Bisa insert transaksi dengan lancar
git checkout versi-awal
-
Simulasi error. Akan menghasilkan error code
500
apabila nilai transaksi kelipatan7000
. Pada saat terjadi error, data akan masuk ke tabeltransaksi
, tapi tidak mengubah saldo di tabelrekening
.git checkout error-tanpa-rollback
-
Implementasi rollback dengan Spring. Akan menghasilkan error code
500
apabila nilai transaksi kelipatan7000
. Pada saat terjadi error, data tidak masuk ke tabeltransaksi
dan tidak mengubah saldo di tabelrekening
.git checkout error-dengan-rollback
-
Kesalahan implementasi rollback. Akan menghasilkan error code
500
apabila nilai transaksi kelipatan7000
. Pada saat terjadi error, data akan masuk ke tabeltransaksi
, tapi tidak mengubah saldo di tabelrekening
.git checkout kesalahan-rollback