[英]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.