diff --git a/src/main/java/com/codeit/todo/domain/Follow.java b/src/main/java/com/codeit/todo/domain/Follow.java new file mode 100644 index 0000000..3f91e4c --- /dev/null +++ b/src/main/java/com/codeit/todo/domain/Follow.java @@ -0,0 +1,33 @@ +package com.codeit.todo.domain; + +import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; + +@Entity +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Follow { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name="follow_id") + private int followId; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "follower_id", nullable = false) + private User follower; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "followee_id", nullable = false) + private User followee; + + @Builder + public Follow(User follower, User followee){ + this.follower = follower; + this.followee = followee; + } + + +} diff --git a/src/main/java/com/codeit/todo/domain/User.java b/src/main/java/com/codeit/todo/domain/User.java index 9b0733d..1cf1965 100644 --- a/src/main/java/com/codeit/todo/domain/User.java +++ b/src/main/java/com/codeit/todo/domain/User.java @@ -6,6 +6,9 @@ import lombok.Getter; import lombok.NoArgsConstructor; +import java.util.ArrayList; +import java.util.List; + @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @@ -28,6 +31,13 @@ public class User { @Column(name = "profile_pic", nullable = false) private String profilePic; + //나를 팔로우 하는 사람들 + @OneToMany(mappedBy = "followee", cascade = CascadeType.REMOVE, orphanRemoval = true) + private List followers = new ArrayList<>(); + + //내가 팔로우 하는 사람들 + @OneToMany(mappedBy = "follower", cascade = CascadeType.REMOVE, orphanRemoval = true) + private List followees = new ArrayList<>(); @Builder public User(int userId, String name, String email, String password, String profilePic) {