我有一个多对多的关联。我的数据库中的表格如下:Event
,Customer
& Customer_Event
。
在事件映射文件中,我已将关联映射为级联值"all-delete-orphan"
。
这在添加新记录时非常有效,并且在删除记录(如果客户未与其他事件关联)时也有效。但是,当客户与多个事件关联时,我收到以下异常:DELETE语句与REFERENCE约束冲突。
这很有道理,但我想知道是否有可能做到以下几点:
删除事件并自动删除客户关联(即Customer_Event
表中的记录),如果Customer
未与其他事件关联,也将其删除。 (即来自Customer
表)
这是我在Event.hbm.xml文件中的映射:
<bag name="CustomerList" table="Customer_Event" inverse="false"
cascade="all-delete-orphan">
<key column="EventId"/>
<many-to-many class="Customer" column="CustomerId" />
</bag>
答案 0 :(得分:0)
在删除操作之前检查此条件,或者在删除方法中再添加一个catch。
如果您有业务规则,请将其放入您的应用程序中。数据库主要用于数据存储。