(快速参考)

hasOne

目的

定义两个类直接的双向一对一关联,其中外键在子类中。

示例

class Face {
    ..
    static hasOne = [nose: Nose]
}
class Nose {
    Face face
}

在此示例中,我们在 Face 类和 Nose 类之间定义了一对一的关系

说明

使用 hasOne 关联将外键引用存储在双向一对一关系中的子类表而不是父类中。上面提供的示例将生成以下表结构

create table face (id bigint generated by default as identity (start with 1),
                   version bigint not null,
                   primary key (id))
create table nose (id bigint generated by default as identity (start with 1),
                   version bigint not null,
                   face_id bigint not null,
                   primary key (id))

请注意,外键 face_id 存储在 nose 表中,而不是存储在 face 表中,如同不使用 belongsTo 的普通一对一定义。