From f6aaf4fbfd5827beadbc6ab0a2ef024e30bf2c98 Mon Sep 17 00:00:00 2001 From: 7beunseo Date: Fri, 11 Oct 2024 23:36:08 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=97=83=EF=B8=8F=20[FEAT]=20=EC=97=94?= =?UTF-8?q?=ED=8B=B0=ED=8B=B0=20=EC=97=B0=EA=B4=80=EA=B4=80=EA=B3=84=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20#2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/umc/spring/domain/Alarm.java | 5 ++++ .../main/java/umc/spring/domain/Comment.java | 21 +++++++++++++++ .../java/umc/spring/domain/CommentImage.java | 5 ++++ .../java/umc/spring/domain/CommentReply.java | 5 ++++ .../java/umc/spring/domain/FoodCategory.java | 6 +++++ .../main/java/umc/spring/domain/FoodLike.java | 26 +++++++++++++++++++ .../main/java/umc/spring/domain/Inquiry.java | 15 +++++++++++ .../java/umc/spring/domain/InquiryImage.java | 5 ++++ .../java/umc/spring/domain/InquiryReply.java | 5 ++++ .../main/java/umc/spring/domain/Location.java | 6 +++++ .../main/java/umc/spring/domain/Market.java | 15 +++++++++++ .../java/umc/spring/domain/MarketImage.java | 16 +++++++++--- .../main/java/umc/spring/domain/Mission.java | 16 +++++++++--- .../src/main/java/umc/spring/domain/User.java | 21 +++++++++++++++ .../java/umc/spring/domain/UserMission.java | 10 +++++++ 15 files changed, 169 insertions(+), 8 deletions(-) create mode 100644 spring/src/main/java/umc/spring/domain/FoodLike.java diff --git a/spring/src/main/java/umc/spring/domain/Alarm.java b/spring/src/main/java/umc/spring/domain/Alarm.java index 49c066c..e64b139 100644 --- a/spring/src/main/java/umc/spring/domain/Alarm.java +++ b/spring/src/main/java/umc/spring/domain/Alarm.java @@ -19,4 +19,9 @@ public class Alarm extends BaseEntity { @Column(name = "is_read") private Boolean isRead; + + // inquiry + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "user_id") + private User user; } diff --git a/spring/src/main/java/umc/spring/domain/Comment.java b/spring/src/main/java/umc/spring/domain/Comment.java index 57a49fe..6f58546 100644 --- a/spring/src/main/java/umc/spring/domain/Comment.java +++ b/spring/src/main/java/umc/spring/domain/Comment.java @@ -4,6 +4,8 @@ import lombok.*; import umc.spring.domain.common.BaseEntity; +import java.util.List; + @Entity @Getter @Builder @@ -22,4 +24,23 @@ public class Comment extends BaseEntity { @Column(name = "content") // 기본 255자 private String content; + + // market + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "market_id") + private Market market; + + // user + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "user_id") + private User user; + + // comment image + @OneToMany(mappedBy = "comment", cascade = CascadeType.ALL, orphanRemoval = true) + private List commentImages; + + // comment reply + @OneToMany(mappedBy = "comment", cascade = CascadeType.ALL, orphanRemoval = true) + private List commentReplies; + } diff --git a/spring/src/main/java/umc/spring/domain/CommentImage.java b/spring/src/main/java/umc/spring/domain/CommentImage.java index 9be6a3c..9bbb799 100644 --- a/spring/src/main/java/umc/spring/domain/CommentImage.java +++ b/spring/src/main/java/umc/spring/domain/CommentImage.java @@ -16,4 +16,9 @@ public class CommentImage extends BaseEntity { @Column(name = "image_url", length = 40) private String imageUrl; + + // comment + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "comment_id") + private Comment comment; } diff --git a/spring/src/main/java/umc/spring/domain/CommentReply.java b/spring/src/main/java/umc/spring/domain/CommentReply.java index a31384d..95f4e84 100644 --- a/spring/src/main/java/umc/spring/domain/CommentReply.java +++ b/spring/src/main/java/umc/spring/domain/CommentReply.java @@ -16,4 +16,9 @@ public class CommentReply extends BaseEntity { @Column(name = "content") // 255자 private String content; + + // comment + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "comment_id") + private Comment comment; } diff --git a/spring/src/main/java/umc/spring/domain/FoodCategory.java b/spring/src/main/java/umc/spring/domain/FoodCategory.java index 1704ffe..523ab66 100644 --- a/spring/src/main/java/umc/spring/domain/FoodCategory.java +++ b/spring/src/main/java/umc/spring/domain/FoodCategory.java @@ -4,6 +4,8 @@ import lombok.*; import umc.spring.domain.common.BaseEntity; +import java.util.List; + @Entity @Getter @Builder @@ -16,4 +18,8 @@ public class FoodCategory extends BaseEntity { @Column(name = "name", length = 20) private String name; + + // food like + @OneToMany(mappedBy = "foodCategory", cascade = CascadeType.ALL, orphanRemoval = true) + private List foodLikes; } diff --git a/spring/src/main/java/umc/spring/domain/FoodLike.java b/spring/src/main/java/umc/spring/domain/FoodLike.java new file mode 100644 index 0000000..fd1be7d --- /dev/null +++ b/spring/src/main/java/umc/spring/domain/FoodLike.java @@ -0,0 +1,26 @@ +package umc.spring.domain; + +import jakarta.persistence.*; +import lombok.*; +import umc.spring.domain.common.BaseEntity; + +@Entity +@Getter +@Builder +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +public class FoodLike extends BaseEntity { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + // food category + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "food_category_id") + private FoodCategory foodCategory; + + // user + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "user_id") + private User user; +} diff --git a/spring/src/main/java/umc/spring/domain/Inquiry.java b/spring/src/main/java/umc/spring/domain/Inquiry.java index a050f35..8bce97c 100644 --- a/spring/src/main/java/umc/spring/domain/Inquiry.java +++ b/spring/src/main/java/umc/spring/domain/Inquiry.java @@ -5,6 +5,8 @@ import umc.spring.domain.common.BaseEntity; import umc.spring.domain.enums.InquiryStatus; +import java.util.List; + @Entity @Getter @Builder @@ -24,4 +26,17 @@ public class Inquiry extends BaseEntity { @Enumerated(EnumType.STRING) @Column(name = "status") private InquiryStatus status; + + // user + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "user_id") + private User user; + + // inquiry image + @OneToMany(mappedBy = "inquiry", cascade = CascadeType.ALL, orphanRemoval = true) + private List inquiryImages; + + // inquiry reply + @OneToMany(mappedBy = "inquiry", cascade = CascadeType.ALL, orphanRemoval = true) + private List inquiryReplies; } diff --git a/spring/src/main/java/umc/spring/domain/InquiryImage.java b/spring/src/main/java/umc/spring/domain/InquiryImage.java index 7a9bae7..b247581 100644 --- a/spring/src/main/java/umc/spring/domain/InquiryImage.java +++ b/spring/src/main/java/umc/spring/domain/InquiryImage.java @@ -15,4 +15,9 @@ public class InquiryImage { @Column(name = "image_url") private String imageUrl; + + // inquiry + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "inquiry_id") + private Inquiry inquiry; } diff --git a/spring/src/main/java/umc/spring/domain/InquiryReply.java b/spring/src/main/java/umc/spring/domain/InquiryReply.java index ba57492..acc00af 100644 --- a/spring/src/main/java/umc/spring/domain/InquiryReply.java +++ b/spring/src/main/java/umc/spring/domain/InquiryReply.java @@ -15,4 +15,9 @@ public class InquiryReply { @Column(name = "content") private String content; + + // inquiry + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "inquiry_id") + private Inquiry inquiry; } diff --git a/spring/src/main/java/umc/spring/domain/Location.java b/spring/src/main/java/umc/spring/domain/Location.java index 0f7edf2..d1d2831 100644 --- a/spring/src/main/java/umc/spring/domain/Location.java +++ b/spring/src/main/java/umc/spring/domain/Location.java @@ -4,6 +4,8 @@ import lombok.*; import umc.spring.domain.common.BaseEntity; +import java.util.List; + @Entity @Getter @Builder @@ -16,4 +18,8 @@ public class Location extends BaseEntity { @Column(name = "name", length = 20) private String name; + + // location에서 market 정보 참조 多 + @OneToMany(mappedBy = "location", cascade = CascadeType.ALL, orphanRemoval = true) + private List markets; } diff --git a/spring/src/main/java/umc/spring/domain/Market.java b/spring/src/main/java/umc/spring/domain/Market.java index 104a578..30630f0 100644 --- a/spring/src/main/java/umc/spring/domain/Market.java +++ b/spring/src/main/java/umc/spring/domain/Market.java @@ -6,6 +6,7 @@ import java.time.LocalDate; import java.time.LocalTime; +import java.util.List; @Entity @Getter @@ -35,4 +36,18 @@ public class Market extends BaseEntity { @Column(name = "star") private Float star; + + // location + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "location_id") + private Location location; + + // market image + @OneToMany(mappedBy = "market", cascade = CascadeType.ALL, orphanRemoval = true) + private List marketImages; + + // comment + @OneToMany(mappedBy = "market", cascade = CascadeType.ALL, orphanRemoval = true) + private List comments; + } diff --git a/spring/src/main/java/umc/spring/domain/MarketImage.java b/spring/src/main/java/umc/spring/domain/MarketImage.java index 6782de2..ae49477 100644 --- a/spring/src/main/java/umc/spring/domain/MarketImage.java +++ b/spring/src/main/java/umc/spring/domain/MarketImage.java @@ -1,11 +1,14 @@ package umc.spring.domain; -import jakarta.persistence.Column; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; +import jakarta.persistence.*; +import lombok.*; import umc.spring.domain.common.BaseEntity; +@Entity +@Getter +@Builder +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor public class MarketImage extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -13,4 +16,9 @@ public class MarketImage extends BaseEntity { @Column(name = "image_url") private String imageUrl; + + // market + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "market_id") + private Market market; } diff --git a/spring/src/main/java/umc/spring/domain/Mission.java b/spring/src/main/java/umc/spring/domain/Mission.java index 8cf9f0c..9555070 100644 --- a/spring/src/main/java/umc/spring/domain/Mission.java +++ b/spring/src/main/java/umc/spring/domain/Mission.java @@ -1,13 +1,17 @@ package umc.spring.domain; -import jakarta.persistence.Column; -import jakarta.persistence.GeneratedValue; -import jakarta.persistence.GenerationType; -import jakarta.persistence.Id; +import jakarta.persistence.*; +import lombok.*; import umc.spring.domain.common.BaseEntity; import java.time.LocalDate; +import java.util.List; +@Entity +@Getter +@Builder +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor public class Mission extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @@ -21,4 +25,8 @@ public class Mission extends BaseEntity { @Column(name = "point") private Integer point; + + // mission + @OneToMany(mappedBy = "mission", cascade = CascadeType.ALL, orphanRemoval = true) + private List missions; } diff --git a/spring/src/main/java/umc/spring/domain/User.java b/spring/src/main/java/umc/spring/domain/User.java index dbb22a0..62ee547 100644 --- a/spring/src/main/java/umc/spring/domain/User.java +++ b/spring/src/main/java/umc/spring/domain/User.java @@ -8,6 +8,7 @@ import umc.spring.domain.enums.SocialType; import java.time.LocalDate; +import java.util.List; @Entity @Getter @@ -67,4 +68,24 @@ public class User extends BaseEntity { @Column(name = "inactive_date") private LocalDate inactiveDate; + + // comment + @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true) + private List comments; + + // inquiry + @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true) + private List inquiries; + + // alarm + @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true) + private List alarms; + + // food like + @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true) + private List foodLikes; + + // mission + @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true) + private List missions; } diff --git a/spring/src/main/java/umc/spring/domain/UserMission.java b/spring/src/main/java/umc/spring/domain/UserMission.java index 279a99c..5745d2b 100644 --- a/spring/src/main/java/umc/spring/domain/UserMission.java +++ b/spring/src/main/java/umc/spring/domain/UserMission.java @@ -18,4 +18,14 @@ public class UserMission extends BaseEntity { @Enumerated(EnumType.STRING) @Column(name = "status") private MemberStatus status; + + // user + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "user_id") + private User user; + + // mission + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "mission_id") + private Mission mission; }