一个用户可以对应多个文章内容,多个文章可能属于同一个用户。这就是一对多还有多对一的关系,在实体里面我们可以描述一下内容之间的关系。
先打开 user 实体,描述一对多的关系要用一下 OneToMany 这个装饰器,使用它的需要提供两个参数,第一个参数主要就是说明一下这个关系关联的内容的类型, 接收一个 type 参数,返回的东西就是关联的内容类型,这里应该是 Post 这种类型。
第二个参数的作用是说明一下反向的关系,就是在 Post 那里,这个关系是什么,接收一个 post 参数,返回是 post.user,也就是在 Post 实体上面应该有个 user 属性,它应该是 Post 与 User 的关系,暂时这个关系还不存在,等会儿我们再去创建它。
这个关系的名字是 posts,复数的形式,因为一个用户可能会发布多个内容,它的类型是一组 Post[]。
下面再打开 Post 实体,在它里面,用一个 @ManyToOne,添加一个多对一的关系,一个 type,返回的是 User 实体类型,意思就是这个关系关联的是 User 实体,第二个参数描述一下反向的关系,在 User 那里,这个关系应该是 user 里的 posts。
这个 Post 实体是这个关系的拥有者,在这个实体上会给我们添加一个新的数据栏,用它保存 Post 与 User 的关系。
在数据库客户端观察一下,打开 post 这个数据表,你会发现这里会出现一个叫 userId 的字段 ,它里面存储的值应该是用户这个数据表里的 id 字段的值。
暂时这栏内容的值都是 NULL,这里我们先手工设置一下这些数据记录的 userId 的值,输入 1,表示这个内容的作者就是 id 号是 1 的这个用户。
下面再分别设置一下这些记录的 userId 的值。