多对一关系

1. 场景

为了演示如何在实体上配置多对一关系,我们举一个例子。

一只宠物,一般情况下只有一个主人;但是对于人来说,却可能养多只宠物。

2. 配置

那么这里宠物 Pet 与主人 Owner 之间的关系明显就是多对一关系,我们根据这个关系建立各自的实体对象。

首先是主人 Owner

@Table
public class Owner extends Model {
    @Id
    private String id;

    @Column
    private String name;

    // 省略 getter 和 setter...
}

然后是宠物 Pet

@Table
public class Pet extends Model {
    @Id
    private String id;

    @Column
    private String name;

    @ManyToOne(Owner.class)
    private String ownerId;

    @Relational
    private Owner owner;

    // 省略 getter 和 setter...
}

3. 说明

从上面的例子可以看到,配置多对一关系的时候,"一"端的实体不需要做任何改动,而"多"端的实体在需要做以下一些配置:

  • 在相应的外键字段上标注 @ManyToOne 注解,并且注解参数指定了"一"端的实体类。

  • 新增一个实体字段,类型为"一"端实体的类型,并且标注上 @Relational 的注解。

到这里多对一关系已经配置完毕。

注意: @ManyToOne 注解是标注在外键字段上,这和一些框架标注在关系字段上的做法稍有不同,需要注意一下。

上一篇:实体关系 下一篇:多对多关系

results matching ""

    No results matching ""