SORU
3 NİSAN 2010, CUMARTESİ


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
3 NİSAN 2010, CUMARTESİ


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • njhaley

    njhaley

    24 NİSAN 2006
  • Perihelion

    Perihelion

    23 NİSAN 2008
  • Rachel Talbott

    Rachel Talbo

    26 Ocak 2011