Nhibernate 多对多级联删除
我定义了两个类之间的多对多关系。 事件和人员(在单独的数据库表Person\u Event中定义)。 现在,假设我要删除一个人,那么它与事件的所有相关关联也必须从person_事件表中删除。换句话说,我想要级联 删除时Nhibernate 多对多级联删除,nhibernate,many-to-many,Nhibernate,Many To Many,我定义了两个类之间的多对多关系。 事件和人员(在单独的数据库表Person\u Event中定义)。 现在,假设我要删除一个人,那么它与事件的所有相关关联也必须从person_事件表中删除。换句话说,我想要级联 删除时 让我们考虑一个场景: “事件”表包含id=1、2、3标识的三个事件 “人员”表包含两个id=4,5的人员 “person_事件”表包含1-4、2-4、3-5等关联 现在,假设我使用Hibernate.delete()删除事件1,那么 它是否删除了事件1、关联人事件1-4以及
让我们考虑一个场景:
- “事件”表包含id=1、2、3标识的三个事件
- “人员”表包含两个id=4,5的人员
- “person_事件”表包含1-4、2-4、3-5等关联
如何将NHibernate配置为仅删除事件和关联person\u事件?我在Hibernate方面没有太多经验,但我认为您希望在调用Hibernate.delete()之前,通过相关的
person
对象从与之关联的任何人处删除事件
这涉及到对象生命周期问题,我认为您需要仔细考虑。例如,如果event1与person1、person2和person4关联,并且您删除了person1,您可能不希望自动删除event1。我认为如果您在多对多映射中将级联设置设置为“无”,您应该我会得到你想要的
它只会删除与事件相关的条目,但不会将删除效果级联到个人。建议您将“nhibernate”标记更改为“hibernate”,这似乎与任何nhibernate特定功能无关,或者同时使用“hibernate”和“nhibernate”。您解决了问题吗?如果是,那么如何解决?