【发布时间】:2009-10-15 01:54:25
【问题描述】:
在我的数据库中,我有具有多对多关系的用户和用户组。 User有一组UserGroup,UserGroup域对象看不到User。
<class name="User" table="UserTable">
<set name="UserGroup" cascade="save-update" access="field.pascalcase-underscore" table="User2UserGroup">
<key column="User_Id" />
<many-to-many class="UserGroup" column="UserGroup_Id" />
</set>
...
我想要实现的是当我删除用户或用户组时从联结表中删除关联的休眠模式。此外,用户和组是子对象,我们称其为域。域是cascade="all-delete-orphans",因此当域被删除时,它会级联删除其所有用户和用户组。
回到 UserUserGroup 关系:如果我理解正确,我不能使用任何形式的涉及删除的级联,因为我只想删除两个对象之间的关联,而不是相关对象本身。 (一个组不会消失,即使它是一个孤儿。没有组的用户在我的世界里是一个有效的东西——他根本没有做任何事情的权利。)
我需要查看事件/拦截器吗?或者我可以通过控制映射来做我想做的事情吗?
【问题讨论】:
标签: nhibernate many-to-many nhibernate-mapping cascade