SORU
23 EKİM 2012, Salı


JPA @CascadeType ile ManyToOne.TÜM

Ben @ManyToOne ilişki bağlamında basamaklı anlamını anladım Bayan bence.

Dava:

public class User {

   @OneToMany(fetch = FetchType.EAGER)
   protected Set<Address> userAddresses;

}

public class Address {

   @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
   protected User addressOwner;

}

Ne cascade anlamı = CascadeType.TÜM ? Nasıl olursa DB belirli bir adresi silmek örneğin, cascade = CascadeType ekledim aslında.TÜM etkiler verilerimi (sanırım kullanıcı)?

CEVAP
23 EKİM 2012, Salı


CascadeType.ALL anlamını sebat ilişkin varlıklar (cascade) EntityManager tüm işlemler (PERSIST, REMOVE, REFRESH, MERGE, DETACH) yaymak.

Senin durumunda kötü bir fikir, Address User ilgili çıkarmadan götürecek bir çıkarma olarak görünüyor. Bir kullanıcı birden çok adresi olabilir gibi, diğer adresler yetimler olacak. Ancak tersi durumda (notlar User) mantıklı - eğer bir adrese ait olduğu için bir tek kullanıcı sadece, güvenli yaymak kaldırılması tüm adreslerine ait bir kullanıcı varsa bu kullanıcı silinmiş.

BTW: mappedBy="addressOwner" niteliği User birleştirme sütunu ADRESİ tabloda olması gereken süreklilik sağlayıcı sinyal eklemek isteyebilirsiniz.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Branboy3

    Branboy3

    12 AĞUSTOS 2012
  • JonnyEthco

    JonnyEthco

    5 EKİM 2006
  • spederson7

    spederson7

    17 Temmuz 2006