class LegacyCdDomain {
String title
Thumbnail thumbnail
static mapping = {
thumbnail ignoreNotFound: true
}
}
ignoreNotFound
用途
指定如何处理多对一关系中引用缺失记录的外键。
示例
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
属性。
如果存在具有不寻常引用完整性行为的旧数据库,此设置可能有用。