@Version
JPA'da ek açıklama nasıl çalışır?
Özü aşağıdaki gibi olan çeşitli cevaplar buldum:
JPA, aynı veri deposu kaydında eşzamanlı değişiklikleri tespit etmek için varlıklarınızdaki bir sürüm alanı kullanır. JPA çalışma zamanı aynı kaydı eşzamanlı olarak değiştirme girişimi algıladığında, en son gerçekleştirmeye çalışan işleme bir istisna atar.
Ama hala nasıl çalıştığından emin değilim.
Ayrıca aşağıdaki satırlarda olduğu gibi:
Sürüm alanlarının değişmez olduğunu düşünmelisiniz. Alan değerinin değiştirilmesi tanımlanmamış sonuçlara neden olur.
Sürüm alanımızı olarak ilan etmemiz gerektiği anlamına mı geliyor final
?
UPDATE myentity SET mycolumn = 'new value', version = version + 1 WHERE version = [old.version]
. Birisi kaydı güncellediyse,old.version
artık DB'deki ile eşleşmeyecek ve where cümlesi güncellemenin olmasını engelleyecektir.0
JPA'nın eşzamanlı bir değişikliğin meydana geldiği sonucuna varmak için algılayabileceği 'satırlar güncellenir' olacaktır .