Java JPA - @Sürüm açıklama
JPA yeni duyuyorum. @Version
açıklama hakkında cofused ediyorum.
- Nasıl çalışır?
Araştırdım ve aşağıdaki gibi olan çeşitli cevaplar buldum
JPA sizin varlıklar sürüm alanı aynı veri deposuna kaydı eşzamanlı değişiklikleri algılamak için kullanır. JPA çalışma zamanı, aynı anda aynı kaydı değiştirmek için bir girişim tespit ettiğinde, bu hareket geçen işlemeye teşebbüs için bir istisna atar.
Ama hala nasıl çalıştığını emin değilim?
==================================================================================
Aşağıdaki satırlar: aynı zamanda gibi
Sürüm alanları değişmez düşünmelisiniz. Alan değeri değişen tanımlanmamış sonuçları vardır.
final
Sürüm bizim alan ilan etmeliyiz anlamına mı geliyor
CEVAP
Ama hala nasıl çalıştığını emin değilim?
Hadi bir varlık MyEntity
** 5 açıklamalı bir özelliği vardır ki:
@Entity
public class MyEntity implements Serializable {
@Id
@GeneratedValue
private Long id;
private String name;
@Version
private Long version;
//...
}
Güncelleme, saha @Version
açıklamalı artan ve WHERE
yan, böyle bir şey eklenecektir
UPDATE MYENTITY SET ..., VERSION = VERSION 1 WHERE ((ID = ?) AND (VERSION = ?))
Eğer WHERE
yan bir rekor aynı varlık zaten başka bir iş parçacığı tarafından güncellendi (çünkü) maç için başarısız olursa, o zaman kalıcılık sağlayıcı OptimisticLockException
bir durum oluşturur.
Bizim son sürüm alanı olarak ilan etmeliyiz anlamına mı geliyor
Hayır ama pasör onu aramak zorunda değilsin olarak korunan yapmayı düşünebiliriz.
Hangi @NotNull açıklama Java kullanmal...
java.açıklama.XMLGregorianCalendar içi...
Dönüştürme 8601 uyumlu ISO java Dize.a...
java.açıklama.Vs java tarih.sql.Tarih...
Nasıl java dönüştürmek için.açıklama.t...