簡體   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