繁体   English   中英

两个实体之间的多种不同类型关联——SpringBoot、PostgreSQL

[英]Multiple different type associations between two entities - SpringBoot, PostgreSQL

假设我有 2 个实体类,User 和 Post。

如果我想让用户写帖子,我会建立@OneToMany 关联,这样一个用户可以成为多个帖子的所有者。

如果我想允许用户“关注”帖子,我会建立@ManyToMany 关联,以便许多用户可以关注许多帖子。

我的问题:在相同的两个实体之间建立这些不同类型的关联是一种好习惯吗? 如果没有,有没有更好的方法?

示例如下

@Entity
public class User{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @OneToMany(mappedBy = "user")
    private Set<Post> posts;

    @ManyToMany
    @JoinTable(
            joinColumns = @JoinColumn(name = "user_id"),
            inverseJoinColumns = @JoinColumn(name = "post_id"))
    private Set<Post> followedPosts;
}
@Entity
public class Post{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Post id;

    @ManyToOne
    @JoinColumn(name = "id", nullable = false)
    private User user;

    @ManyToMany(mappedBy = "followedPosts")
    private Set<User> users;
}

是的,您可以在相同的 2 个表之间有许多关联。

一个表甚至可以有多个关联回自身,例如, Person表可以有一个father_id列和一个mother_id列,它们都是返回到Person表本身的外键(一对多关联)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM