Konuyu görüntüle
IUCODERS FORUM > Programlama > JAVA > JPA Silme Sorunu
Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
21.06.2011-09:53 #75019
Merhabalar,
Projemde şöyle bir sorun yaşıyorum. One-to-Many ilişkide iki entity'im var. Baskın olan nesnenin listesini arayüzde bir selectManyMenu'de gösteriyorum. manyMenu'de 3 nesne olsun. Bunlara A,B,C dersek ben A ve B'yi seçip kaydettiğimde veritabanına doğru şekilde işleniyor. Burda sorun yok. Ama eğer sonradan B ve C seçip güncellemeye kaklarsam veritabanından A silinmiyor. JPA cache de silinmiş görünüyor ama veritabanı etkilenmiyor. Bunu nasıl çözebilirim?

Özet: Entity'ye bağlı listeden bi nesne çıkarıp merge ederek silmek istiyorum.

Kısıtlarım : Önce veritabanında herşeyi silip tekrar persist edemem. Nesneler farklı ilişkilerede sahip. Sadece yeni eklenenler eklenmeli ve kaldırılınlar silinmeli. For döngüleri ile kontrol edip remove demekde imkansız. Bu yapı çok fazla yerde var ve karışık kodlar ile yapılabilir gibi değil.





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
21.06.2011-10:24 #75021
transactionlarinin commit olmamamasi baska bir sorun. muhtemelen transaction management dogru ayarlanmamis.

a b c olayini tam olarak anlamadim ama sorun cascade type ile alakali olabilir.
su isini gorebilir.
http://plunchete.wordpress.com/2007/05/15/relations-with-jpa/





N/A
Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
21.06.2011-11:27 #75022
Cascade All yaptım sorun o yüzden kaynaklanmıyor. Ben zaten bir remove çağırmıyorum. Listeden bir elemanı çıkardığımda onu remove etmeden silebilmek istiyorum. Listeden çıkarıp listeye sahip nesneyi merge ederek.





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
extreme


avatar
Kahramanmaras
admin
Kayıt: 24.10.2006
21.06.2011-11:40 #75023
Çözümü buldum. Relationda orphanRemoval = true yapmak lazımmış.





The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
21.06.2011-18:47 #75027
JPA 2 de dediğin gibi oyle bi olay var. jpa1 de bu yok ya elle uçurman lazım ya da hibernate kullanırsan cascade delete_orphan olmalı





N/A
Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb