OneToMany'deki varlıkları RequestFactory ve JPA ile kaldırma

Bir çocuğu RequestFactory kullanarak GWT içindeki birebir ilişkiden çıkarmanın doğru yolunun ne olduğunu bilmek isterim.

Ürün adlı bir Varlık içeren GWT başvurum ve bu ürünün Uzman ile bire çok ilişkisi var:

@Entity
public class Product {
    ... 
    OneToMany(mappedBy="product", orphanRemoval=true,
              cascade={CascadeType.DETACH,CascadeType.MERGE,CascadeType.PERSIST,CascadeType.REFRESH},fetch=FetchType.EAGER)
    Set experts = new HashSet();
    ...
}

@Entity(name = "EXPERT")
public class Expert {
    ...
    @ManyToOne(optional=false)
    Product product;
    ...
}

Ürünün bazı değerlerini değiştirebileceğiniz bir kullanıcı arayüzüne sahibim, aynı zamanda uzmanların eklenebilir veya kaldırılabildiği bir pencere var. Uzman Eklemek iyi gider, ancak bir uzmanı nasıl kaldırabilirim? İstemci ve sunucu tarafında hangi yönetimi kullanmalıyım?

Zaten açılmış bir ürün var.

3
Bu sorunun genel olarak JPA ile daha alakalı olduğu anlaşılıyor. Bu yüzden başka bir soru ekledim: stackoverflow.com/questions/7945852
katma yazar Roalt, kaynak

1 cevap

JPA sorunuza da cevap verdim.

Geçmiş deneyimime dayanarak, bir çocuğu Hazırda bekletme çift taraflı ilişkisinde bir çocuğu çıkarmak çok zor olabilir.

Genelde yaptığım şey tek yönlü haritalamayı kullanmaktır, yani Ürün uzman setini tutmaz. Ancak, tüm uzmanları Hazırda Bekletme çağrısı kullanarak almak için bir alıcı uygulayabilirsiniz. Avantajları şunlardır:

  1. daha kolay haritalama
  2. daha kolay kodlama
  3. yönetilebilir behur

Her zaman geri gelebilir ve daha sonraki aşamada önbelleğe alma veya istekli getirme uygulayabilirsiniz. Ve çoğu zaman gereksiz olgunlaşmış optimizasyonlardır.

0
katma
Sonunda her şeyin işe yaramasını sağladım, ama dediğin gibi, bu oldukça zor olabilir ve açık ve kolay görünüyor, ama pratikte zor olabilir. Bir sonraki proje için, uygulamaların beklenenden daha zor (veya kısıtlayıcı) olması nedeniyle ilişkileri daha dikkatli seçeceğimden eminim.
katma yazar Roalt, kaynak