JPA OneToMany silme çocuk değil
basit @üst ve alt varlık arasında OneToMany eşleme ile bir sorunum var. Tüm alt kayıtlar ben koleksiyonundan onları kaldırdığınızda silinmez sadece iyi çalışır.
Üst:
@Entity
public class Parent {
@Id
@Column(name = "ID")
private Long id;
@OneToMany(cascade = {CascadeType.ALL}, mappedBy = "parent")
private Set<Child> childs = new HashSet<Child>();
...
}
Çocuk:
@Entity
public class Child {
@Id
@Column(name = "ID")
private Long id;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name="PARENTID", nullable = false)
private Parent parent;
...
}
Ben childs kümesinden silmek ve çocuk şimdi ise, veritabanından silinmiş almaz. Çocuk bozarak çalıştım.üst referans, ama o da işe yaramadı.
Varlıkları bir web uygulaması kullanılır, sil ajax isteği bir parçası olarak gerçekleşir. Onlara örtülü olarak silemiyorum yani Kaydet düğmesine basıldığında childs silinmiş, bir liste yok.
Herhangi bir işaret var mı? Zaman ayırdığınız için şimdiden teşekkür ederiz
CEVAP
JPA davranışlarını doğru (anlamşartname başına): nesneler sadece OneToMany koleksiyonundan onları kaldırdık çünkü silinmez. -Özel satıcı bunun uzantıları var ama yerli JPA bunun için hitap etmiyor.
Bu aslında bir şey koleksiyonundan kaldırıldı silmesi gerektiğini biliyor JPA yok çünkü. Nesne modelleme açısından, bu arasındaki farktırkompozisyonve "toplama*.
kompozisyonalt taraf üst olmadan varlığı yoktur. Klasik bir örnek Ev ve Oda arasında. Ev ve Oda da silin.
Toplamadernek gevşek bir tür ve Ders ve Öğrenci yetiştirmektir. Sil Ders ve Öğrenci hala var (muhtemelen diğer Dersler).
Satıcıya özgü uzantıları bu davranış (varsa) güç ya da açıkça çocuğun silmek için kullanın VE ebeveynin koleksiyon çıkarmak da gerekir.
Farkındayım:
- Hibernate: Çağlayan delete_orphan. Bakın 5**; ve
- EclipseLink: Bu "özel mülkiyet" der. How to Use the @PrivateOwned Annotation bkz.
css:ilk çocuk seçici değil...
() startActivityForResult bir Parçası ...
-Çocuk son seçici CSS: üst içinde beli...
Neden't Python fonksiyonel progra...
Eclipse eşleştirme değişkenleri vurgul...