2015-06-29 64 views
0

我有许多对A和B, 之间一对多关系,其中A属于关联乙的Grails:删除的许多一对多关系

假设DB内的以下数据仅一侧:

<a1,b1> 
<a1,b2> 
<a2,b1> 

如何删除所有A1,所以数据库将使用映射保持

<a2,b1> 

中最优雅的\自动方式?

回答

0

不幸的是,cascade“all-delete-orphan”,这听起来非常合适,applies only to one-to-many relationships(我刚刚测试过你的场景,它确实不起作用)。我想不出一个更优雅的方式来处理这个问题,而不是使用beforeDelete休眠事件A删除所有孤立的B's

考虑将连接表映射为建议的here作为实体,以避免头痛,并且如果您需要Burt Beckwith here建议的性能。我讨厌这种非面向对象的方法,但你可能需要遵循它。至少你会有级联删除。

+0

不幸的是,这似乎不可能。 – shaydel