ধরা যাক আমার দুটি সত্তা রয়েছে: গ্রুপ এবং ব্যবহারকারী। প্রতিটি ব্যবহারকারী অনেক গ্রুপের সদস্য হতে পারে এবং প্রতিটি গ্রুপে অনেক ব্যবহারকারী থাকতে পারে।
@Entity
public class User {
@ManyToMany
Set<Group> groups;
//...
}
@Entity
public class Group {
@ManyToMany(mappedBy="groups")
Set<User> users;
//...
}
এখন আমি একটি গোষ্ঠী অপসারণ করতে চাই (যাক এর অনেক সদস্য রয়েছে বলে নিই)
সমস্যাটি হ'ল আমি যখন কোনও গ্রুপে এনটিটিম্যানেজ.আরমোভ () কল করি তখন জেপিএ সরবরাহকারী (আমার ক্ষেত্রে হাইবারনেট) বিদেশী কী বাধাগুলির কারণে সারণিগুলিতে সারিগুলি সরিয়ে দেয় না এবং অপসারণ মুছে ফেলা ব্যর্থ হয়। ব্যবহারকারীর উপর অপসারণ () কল করা ভাল কাজ করে (আমার ধারণা এটির সম্পর্কের পক্ষের সাথে কিছু করার আছে)।
সুতরাং আমি কীভাবে এই ক্ষেত্রে একটি গোষ্ঠী অপসারণ করতে পারি?
আমি কেবলমাত্র গ্রুপটিতে উপস্থিত সমস্ত ব্যবহারকারীকে লোড করা, তারপরে প্রতিটি ব্যবহারকারীর জন্য তার গোষ্ঠী থেকে বর্তমান গ্রুপটি সরিয়ে এবং ব্যবহারকারীকে আপডেট করা। তবে গোষ্ঠী থেকে প্রতিটি ব্যবহারকারীর কাছে এই গ্রুপটি মুছতে সক্ষম হবার জন্য আপডেট () আপডেট করা আমার কাছে হাস্যকর বলে মনে হচ্ছে।