2009-05-26 22 views
15

Hazırda bekletme, bire-bir veya çoktan çoğa ilişkilerin "silme-yetim" basamaklarını desteklemez. Bunu yeni keşfettim ve bana ciddi bir baş ağrısı veriyor. Modelimde, çocuğun ebeveyninin dışında gerçek bir dünyaya sahip olamayacağı şekilde tasarlanmış bir çift sınıfım var. Ebeveynler için sadece bir DAO'm var ve çocuk sınıfı için ayrı bir DAO değil.Hazırda bekletme için bire-bir ve çoktan bire ilişki için silinen yetim desteği yok mu?

Bu çalışır: Bu son derece şimdi benim DAO katmanı yeniden düşünmek zorunda çünkü talihsiz ve benim hizmetin operasyonların birkaç olup

parent.setChild(null); 
parentDao.save(parent); 

: Bu şey yapmaz

parent.getChild().setProperty("something"); 
parentDao.save(parent); 

katmanı.

Bu sınırlama etrafında zarif bir şekilde çalışan var mı? Sadece kendimi kalıcı ana nesnelerle ilgilenmeyi çok isterim. Bu özel durumda, Hazırda bekletme yapmaktan ve sadece çocukların silinmesi durumunda çocuk ısrarı ile başa çıkmanın bir sebebi yoktur.

cevap

4

O Umarım yakında

http://opensource.atlassian.com/projects/hibernate/browse/HHH-2608

Yani bilet 2007 yılında açılmış ve sorun hakkında şikayetçi Son Mesajları bir ay önce en yeni olarak oldu geri onlar hitap OLABİLİR çerçevesinde beraberlik gibi görünüyor .

Yaptığım şey, isMarkedForDeletion adlı nesneme bir özellik yerleştirmektir. Ve eğer bu doğru gerçekleşirse, benim dao'm ya da servisim açık bir silme işlemine sahip olur. Bu, silme öyküsü kadar iyi değil, ancak bahar + hazırda bekleme durumunda yeterince iyi çalışıyor.

Bu gönderiye göz kulak olacağım, çünkü bu çok önemli bir soru.

+0

O yaklaşık bir yıl önce çözüldü görünüyor çocuktan kaydı silmek/projects/hibernate/browse/HHH-4726 –

+1

@Savannah: İlişkinin "kısıtlı" olmaması durumunda, "silme-yetim", "" için destekleniyor gibi görünüyor (bkz. http://docs.jboss.org/hibernate /core/3.6/reference/en-US/html/mapping.html#onetoone4). Bunu kendime açıklayamam, çünkü bire bir her zaman başvurulan bir anahtar kısıtlaması vardır. –

-1

Veritabanı, alt tablodaki güncelleştirme tetikleyicisi üzerine yazın. http://opensource.atlassian.com - ebeveyn anahtarı null ise

+0

cevaba daha fazla şey ekleyebilir misin? –

İlgili konular