我正在尝试在 Spring Boot 中实现一个友谊实体。起初我打算在 UserAccount 类中使用自引用多对多关系,但决定反对它,因为我还想存储友谊开始的日期。
下面是我想出的。友谊类将包含关注者 UserAccount、关注者 UserAccount 和创建关系的日期。我不确定是否需要在 UserAccount 类中使用相应的 @OneToMany 注释,或者我在下面所做的是否完全正确。
我以前使用过 ManyToOne 和 OneToMany 关系,但不是以这种方式,因为我有两个在同一个班级,所以如果有人能给我一些反馈或给我一些有用的见解来帮助我更好地理解这种关系,我真的很感激.
@Entity
@Table(name = "friendship_relationships")
public class Friendship {
@Id
@Column(name = "friendship_id")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "friendship_generator")
@SequenceGenerator(name = "friendship_generator", sequenceName = "friendship_seq", allocationSize = 1)
private long friendshipId;
@ManyToOne(cascade=CascadeType.ALL, fetch=FetchType.LAZY)
@JoinColumn(name = "followee_id")
private UserAccount followee;//person being followed
@ManyToOne(cascade=CascadeType.ALL, fetch=FetchType.LAZY)
@JoinColumn(name = "follower_id")
private UserAccount follower;//person following
@Column(name = "friendship_start_date")
private LocalDate startDate = LocalDate.now();
//Constructor, getters, setters ...
}