(快速参考)

ignoreNotFound

用途

指定如何处理多对一关系中引用缺失记录的外键。

示例

class LegacyCdDomain {

    String title
    Thumbnail thumbnail

    static mapping = {
        thumbnail ignoreNotFound: true
    }
}
class Thumbnail {
    byte[] data
}

说明

用法:关联名称 (ignoreNotFound: 布尔值)

如果数据库中的数据已损坏,并且外键引用不存在的记录,则 Hibernate 会显示“给定标识符的行不存在”的消息。例如,LegacyCdDomain 记录可能引用 ID 为 1234 的 Thumbnail 记录,但是数据库可能不再包含 ID 为 1234 的 Thumbnail

加载此类损坏数据的一种可能方法是使用 ignoreNotFound 映射选项。如果将其设置为 true,则 Hibernate 会将缺失的行视为 null 关联。因此,在上述示例中,我们的 LegacyCdDomain 实例将加载,但其 thumbnail 属性将为 null。为 ignoreNotFound 指定 false 值会导致 Hibernate 抛出 org.hibernate.ObjectNotFoundException

使用 ignoreNotFound: true 加载的数据集可能会在 save() 期间因引用缺失而抛出异常!

此设置的默认值为 false。它映射到 Hibernate 的 not-found 属性。

如果存在具有不寻常引用完整性行为的旧数据库,此设置可能有用。