diff --git a/src/main/java/hello/booktown/domain/User.java b/src/main/java/hello/booktown/domain/User.java index a77471f..f8d9d30 100644 --- a/src/main/java/hello/booktown/domain/User.java +++ b/src/main/java/hello/booktown/domain/User.java @@ -1,10 +1,11 @@ package hello.booktown.domain; -import hello.booktown.domain.enums.Difficulty; import hello.booktown.domain.enums.UserRole; import jakarta.persistence.*; import lombok.*; +import java.util.List; + @Entity @Table(uniqueConstraints = { @UniqueConstraint(columnNames = {"provider", "providerId"}) @@ -43,9 +44,24 @@ public User(String email, String provider, String providerId, String username, S private String introduction; - @OneToMany(mappedBy = "user") - private java.util.List bookApplies; + // 실제 연관관계가 존재하는 엔티티만 남깁니다 + @OneToMany(mappedBy = "user", cascade = CascadeType.REMOVE, orphanRemoval = true) + private List bookApplies; + + @OneToMany(mappedBy = "user", cascade = CascadeType.REMOVE, orphanRemoval = true) + private List quizzes; + + @OneToMany(mappedBy = "user", cascade = CascadeType.REMOVE, orphanRemoval = true) + private List quizSubmissionGroups; + + @OneToMany(mappedBy = "user", cascade = CascadeType.REMOVE, orphanRemoval = true) + private List bookLikes; + + @Enumerated(EnumType.STRING) + @Column(nullable = false) + private UserRole role; + // 업데이트 메서드 public void updateIntroduction(String introduction) { this.introduction = introduction; } @@ -58,10 +74,6 @@ public void updateScore(Long score) { this.score = score; } - @Enumerated(EnumType.STRING) - @Column(nullable = false) - private UserRole role; - public void setProfileImage(String imageUrl) { this.profileImage = imageUrl; }