スプリング ブートでフレンドシップ エンティティを実装しようとしています。最初は、クラス UserAccount で多対多の関係を参照する自己参照を使用するつもりでしたが、友情が始まった日付も保存したいので、それをやめました。
以下は私が思いついたものです。フレンドシップ クラスには、フォロワーの UserAccount、フォロワーの UserAccount、および関係が作成された日付が含まれます。UserAccount クラスに対応する @OneToMany アノテーションが必要かどうか、または以下で行ったことがまったく正しいかどうかはわかりません。
以前に ManyToOne と OneToMany の関係を使用したことがありますが、同じクラスに 2 つあるこの方法は使用していません。そのため、誰かがフィードバックを提供したり、関係をよりよく理解するのに役立つ有用な洞察を提供してくれたりする場合は、本当に感謝しています。 .
@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 ...
}