【问题标题】:CF9 ORM EntityDelete with foreign key带有外键的 CF9 ORM EntityDelete
【发布时间】:2011-12-17 21:11:41
【问题描述】:

使用一对多 ORM 对象“Artist”和“Art”的常用示例,我有一个 Art 表,其中包含一个名为 ArtistID 的列,该列被标记为“Artist”的外键(它使用,令人惊讶的是, Artist 表的主键)。当我有一个特定的艺术家(称为“thisArtist”)并尝试 EntityDelete(“thisArtist”)时,我收到一个错误:

DELETE 语句与 REFERENCE 约束“FK_Art_Artists”冲突。冲突发生在数据库“ArtistTracker”、表“dbo.Art”、列“ArtistID”中。

我非常有信心我正在做一些愚蠢的事情,无论是我的关系设置还是我的语法。有没有人遇到过这个?如果特定 Artist 对 Art 表中的条目具有外键约束,我没有看到如何 EntityDelete() 的示例。

【问题讨论】:

    标签: orm coldfusion coldfusion-9


    【解决方案1】:

    您的艺术家可能有一个“艺术”属性,对吗?这可能指向一个艺术 CFC。您的艺术属性可能看起来像 property name="arts" cfc="Art" fieldtype="one-to-many";

    缺少的是告诉 ORM 如何处理您删除 Artist 的情况。在您的情况下,您需要在艺术属性上添加“级联”属性,如下所示:property... cascade="all-delete-orphan";

    然后,当您 entityDelete 艺术家时,Hibernate 也会删除属于该艺术家的所有孤立艺术元素。

    在创建一对多关系时,您几乎总是希望指定 cascade="one-to-many" 和 inverse="true"。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多