NHibernate一次性删除

NHibernate一次性删除,nhibernate,nhibernate-mapping,Nhibernate,Nhibernate Mapping,我试图通过清除集合(list.clear())或在父/子关系中创建集合的新实例来清除集合 与此类似: 我的测试与上面链接中的测试几乎相同。我尝试了几种设置组合,但在我的一生中,我无法让NHibernate为所有子对象发出一个sql删除,而不是为每个子对象发出一个sql删除。我一定错过了什么。有趣的帖子。你在NHibernate Jira内跟踪过吗?。我试着这样做,Sergey Koshcheyev将其标记为“非问题”,因为反向=真映射似乎在某种程度上禁止一次性删除工作,这意味着反向映射禁止删除

我试图通过清除集合(list.clear())或在父/子关系中创建集合的新实例来清除集合

与此类似:


我的测试与上面链接中的测试几乎相同。我尝试了几种设置组合,但在我的一生中,我无法让NHibernate为所有子对象发出一个sql删除,而不是为每个子对象发出一个sql删除。我一定错过了什么。

有趣的帖子。你在NHibernate Jira内跟踪过吗?。我试着这样做,Sergey Koshcheyev将其标记为“非问题”,因为反向=真映射似乎在某种程度上禁止一次性删除工作,这意味着反向映射禁止删除孤立项正常工作,因为孤立项似乎过于独立。(不确定这是否是正确的形容词)


尝试从父对象进行单向映射(如果可能的话),以使子对象更加依赖,并(希望)一次删除工作。

一次删除可能会产生意外的副作用,因此我认为NHibernate安全起见,只删除从该集合中清除的子对象。当然,您可以随时使用hql编写自己的删除操作。

我可以在今晚晚些时候发布代码。在Oren的相同测试之后,我做了一个例子,但使用Fluent进行映射,从那里我尝试了几种变体。有趣的是,我从来没有想过,可能一次删除只适用于一对多单向关联。我会试试看。我尝试了单向关联,得到了相同的结果。也许它在2.12中被删除了。这没什么大不了的,我只是想让它工作。没错,我可以写hql,我更好奇的是为什么我不能让它工作,如果功能被删除了。