Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nhibernate 多对多级联删除_Nhibernate_Many To Many - Fatal编程技术网

Nhibernate 多对多级联删除

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以及

我定义了两个类之间的多对多关系。 事件和人员(在单独的数据库表Person\u Event中定义)。 现在,假设我要删除一个人,那么它与事件的所有相关关联也必须从person_事件表中删除。换句话说,我想要级联 删除时

让我们考虑一个场景:

  • “事件”表包含id=1、2、3标识的三个事件
  • “人员”表包含两个id=4,5的人员
  • “person_事件”表包含1-4、2-4、3-5等关联
现在,假设我使用Hibernate.delete()删除事件1,那么 它是否删除了事件1、关联人事件1-4以及 人4

问题是person4被另一个表引用,它抛出一个外部约束异常。。。
如何将NHibernate配置为仅删除事件和关联person\u事件?

我在Hibernate方面没有太多经验,但我认为您希望在调用Hibernate.delete()之前,通过相关的
person
对象从与之关联的任何人处删除事件


这涉及到对象生命周期问题,我认为您需要仔细考虑。例如,如果event1与person1、person2和person4关联,并且您删除了person1,您可能不希望自动删除event1。

我认为如果您在多对多映射中将级联设置设置为“无”,您应该我会得到你想要的


它只会删除与事件相关的条目,但不会将删除效果级联到个人。

建议您将“nhibernate”标记更改为“hibernate”,这似乎与任何nhibernate特定功能无关,或者同时使用“hibernate”和“nhibernate”。您解决了问题吗?如果是,那么如何解决?