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

  • ArkticPlanet

    ArkticPlanet

    9 ŞUBAT 2010
  • Mark Hyder

    Mark Hyder

    6 EKİM 2011
  • Stevie

    Stevie

    2 Mayıs 2010