Hazırda Beklet - Çağlayan ile Bir koleksiyon=”-silmek-yetim” artık sahibi varlık tarafından başvurulan örneği
Benim varlık güncelleştirmek için çalışırken aşağıdaki sorunu yaşıyorum:
"A collection with cascade=”all-delete-orphan” was no longer referenced by the owning entity instance".
Bir üst varlık var ve bir dizi<...>bazı çocuklar varlıkları. Güncelleme yapmak istediğimde, tüm başvurular bu koleksiyon için ayarlı olacağım ve ayarlayın.
Aşağıdaki benim kod eşleme temsil eder:
@OneToMany(mappedBy = "parentEntity", fetch = FetchType.EAGER)
@Cascade({ CascadeType.ALL, CascadeType.DELETE_ORPHAN })
public Set<ChildEntity> getChildren() {
return this.children;
}
Set temiz&;..^ lt etmeye çalıştım . sadece, buna göre: How to "possible" solve the problem ama işe yaramadı.
Eğer herhangi bir fikir varsa, lütfen bana bildirin.
Teşekkürler!
CEVAP
SonEntities bir atama nerede tüm yerleri kontrol edin. Bir şekilde başvurulan bağlantı yeni bir HashSet oluşturma alışveriş kümesi atamak her zaman bu hata olabilir. Örneğin:
public void setChildren(Set<SonEntity> aSet)
{
this.sonEntities = aSet; //This will override the set that Hibernate is tracking.
}
İstediğiniz genellikle sadece "yeni" bir zamanlar bir kurucu olarak ayarlayın. Herhangi bir zaman ya da listenin içeriğini değiştirmek zorunda listeye bir şeyler eklemek ve silmek için yeni bir liste atamak yerine istediğiniz.
Çocuk eklemek için:
public void addChild(SonEntity aSon)
{
this.sonEntities.add(aSon);
}
Çocukların kaldırmak için:
public void removeChild(SonEntity aSon)
{
this.sonEntities.remove(aSon);
}
varlık nesne İEntityChangeTracker bird...
hazırda özel durum: org.Hazırda Beklet...
'JPA arasındaki fark ne ve Hazırd...
Nasıl SQL varlık çerçevesi tarafından ...
Hazırda Beklet: Kriterleri vs HQL...