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