Diyelim ki iki varlığım var: Grup ve Kullanıcı. Her kullanıcı birçok gruba üye olabilir ve her grup birçok kullanıcıya sahip olabilir.
@Entity
public class User {
@ManyToMany
Set<Group> groups;
//...
}
@Entity
public class Group {
@ManyToMany(mappedBy="groups")
Set<User> users;
//...
}
Şimdi bir grubu kaldırmak istiyorum (diyelim ki birçok üyesi var).
Sorun şu ki, bazı Gruplarda EntityManager.remove () 'i çağırdığımda, JPA sağlayıcısı (benim durumumda Hibernate) satırları birleştirme tablosundan kaldırmıyor ve yabancı anahtar kısıtlamaları nedeniyle silme işlemi başarısız oluyor. Kullanıcıda remove () çağrısı iyi çalışıyor (sanırım bunun ilişkinin sahiplenme tarafıyla bir ilgisi var).
Peki bu durumda bir grubu nasıl silebilirim?
Bulabilmemin tek yolu, gruptaki tüm kullanıcıları yüklemek, ardından her kullanıcı için mevcut grubu gruplarından kaldırmak ve kullanıcıyı güncellemektir. Ancak, sırf bu grubu silebilmek için gruptaki her kullanıcı için update () 'i çağırmak bana saçma görünüyor.