Site icon arthanugraha.com

Entity Locking trick in Wakanda

Hi All,

Wakanda menggunakan metode optimistics locking untuk menjaga konsistensi data yang tersimpan. Artinya adalah, jika satu entity sedang dilakukan proses penyimpanan, maka secara default, Wakanda akan mengunci proses tersebut, sehingga jika ada proses lain yang berkaitan dengan entity tersebut tidak akan bisa diproses dan menghasilkan error.

Misalnya seperti pada contoh berikut:

var x = ds.Person(1); //Reference to entity
var y = ds.Person(1); //Separate reference to same entity
x.firstName = ‘Bill’;
x.save();
y.firstName = ‘William’;
y.save(); //Throws error

untuk melakukan handling terhadap coding ini, kita dapat menambahkan blok Try… cacth… seperti contoh berikut:

var x = ds.Person(1); //Reference to entity
var y = ds.Person(1); //Separate reference to same entity
x.firstName = ‘Bill’;
x.save();
y.firstName = ‘William’;
try {
y.save(); //Throws error
}
catch (e){
//do something here
}

Selain itu, untuk menghilangkan setup default proses locking ini, kita dapat merubahnya di class yang dimaksud, tepatnya di bagian property panel dengan mencentang Allow Stamp Override, maka Wakanda tidak akan lagi melakukan lock pada saat proses penyimpanan data berikutnya dan selalu melalukan overwrite terhadap data yang sudah ada sebelumnya.

Exit mobile version