From 9fb64a092c46a7bea8bb08242b025899c24d4c88 Mon Sep 17 00:00:00 2001 From: minmin02 Date: Wed, 8 Oct 2025 15:45:21 +0900 Subject: [PATCH] =?UTF-8?q?feat=20:=20ERD=EC=88=98=EC=A0=95=EC=97=90=20?= =?UTF-8?q?=EB=94=B0=EB=A5=B8=20=EC=97=94=ED=8B=B0=ED=8B=B0=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../umc_9th/domain/inquiry/Inquries.java | 34 ++++++++++++++++++ .../umc_9th/domain/inquiry/InquriesType.java | 6 ++++ .../domain/inquiry/inquiryAttachments.java | 30 ++++++++++++++++ .../example/umc_9th/domain/member/Member.java | 36 +++++++++---------- .../umc_9th/domain/mission/Mission.java | 8 +++-- .../umc_9th/domain/review/OwnerComment.java | 28 +++++++++++++++ .../example/umc_9th/domain/review/Review.java | 16 +++++---- .../example/umc_9th/domain/store/Store.java | 8 ++--- .../domain/store/mapping/FoodCategory.java | 7 ++-- 9 files changed, 139 insertions(+), 34 deletions(-) create mode 100644 src/main/java/com/example/umc_9th/domain/inquiry/Inquries.java create mode 100644 src/main/java/com/example/umc_9th/domain/inquiry/InquriesType.java create mode 100644 src/main/java/com/example/umc_9th/domain/inquiry/inquiryAttachments.java create mode 100644 src/main/java/com/example/umc_9th/domain/review/OwnerComment.java diff --git a/src/main/java/com/example/umc_9th/domain/inquiry/Inquries.java b/src/main/java/com/example/umc_9th/domain/inquiry/Inquries.java new file mode 100644 index 0000000..55431dc --- /dev/null +++ b/src/main/java/com/example/umc_9th/domain/inquiry/Inquries.java @@ -0,0 +1,34 @@ +package com.example.umc_9th.domain.inquiry; + + +import com.example.umc_9th.domain.member.Gender; +import com.example.umc_9th.domain.member.Member; +import com.example.umc_9th.domain.review.Review; +import jakarta.persistence.*; +import lombok.*; + +@Entity +@Getter +@Builder +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +public class Inquries { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; //pk + + @Column(nullable = false, length = 50) + private String title; //제목 + + @Column(nullable = false, length = 250) + private String content; //내용 + + @Enumerated(EnumType.STRING) // 문의유형 ENUM 처리 + private InquriesType type; + + @ManyToOne(fetch = FetchType.LAZY) // 리뷸 테이블 N:1 관계 매핑 + @JoinColumn(name = "member_id") + private Member member; + +} diff --git a/src/main/java/com/example/umc_9th/domain/inquiry/InquriesType.java b/src/main/java/com/example/umc_9th/domain/inquiry/InquriesType.java new file mode 100644 index 0000000..147d5bd --- /dev/null +++ b/src/main/java/com/example/umc_9th/domain/inquiry/InquriesType.java @@ -0,0 +1,6 @@ +package com.example.umc_9th.domain.inquiry; + +public enum InquriesType { + ACCOUNTSUPPORT, + BIILGING +} diff --git a/src/main/java/com/example/umc_9th/domain/inquiry/inquiryAttachments.java b/src/main/java/com/example/umc_9th/domain/inquiry/inquiryAttachments.java new file mode 100644 index 0000000..fc50de0 --- /dev/null +++ b/src/main/java/com/example/umc_9th/domain/inquiry/inquiryAttachments.java @@ -0,0 +1,30 @@ +package com.example.umc_9th.domain.inquiry; + + +import com.example.umc_9th.domain.member.Member; +import jakarta.persistence.*; +import lombok.*; + +@Entity +@Getter +@Builder +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +public class inquiryAttachments { + + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; //pk + + @Column(nullable = false, length = 250) + private String url; //문의 사진 + + + + @ManyToOne(fetch = FetchType.LAZY) // 리뷸 테이블 N:1 관계 매핑 + @JoinColumn(name = "member_id") + private Inquries inquries; + + +} diff --git a/src/main/java/com/example/umc_9th/domain/member/Member.java b/src/main/java/com/example/umc_9th/domain/member/Member.java index adbc6c4..73a8105 100644 --- a/src/main/java/com/example/umc_9th/domain/member/Member.java +++ b/src/main/java/com/example/umc_9th/domain/member/Member.java @@ -53,24 +53,24 @@ public class Member extends BaseEntity { - @OneToOne(fetch = FetchType.LAZY) // 동의 테이블과 1:1 관계 매핑 - @JoinColumn(name = "agree_id") - private Agree agree; - - @OneToMany(fetch = FetchType.LAZY) // 리뷰 테이블 N:1 관계 매핑 - @JoinColumn(name = "review_id") - private List reviews; - - @OneToMany(fetch = FetchType.LAZY) // 미션 테이블 N:1 관계 매핑 - @JoinColumn(name = "userMission_id") - private List userMissions ; - - - -//Lazy : 프록시 객체로 채워두고 실제로 그 연관된 엔티티의 데이터를 사용하는 시점 - @OneToOne(fetch = FetchType.LAZY) // 지역 테이블과 1:1 관계 매핑 - @JoinColumn(name = "region_id") - private Region Region; + //양방향 고려 + +// @OneToOne(fetch = FetchType.LAZY) // 동의 테이블과 1:1 관계 매핑 +// @JoinColumn(name = "agree_id") +// private Agree agree; +// +// @OneToMany(fetch = FetchType.LAZY) // 리뷰 테이블 N:1 관계 매핑 +// @JoinColumn(name = "review_id") +// private List reviews; +// +// @OneToMany(fetch = FetchType.LAZY) // 미션 테이블 N:1 관계 매핑 +// @JoinColumn(name = "userMission_id") +// private List userMissions ; +// +////Lazy : 프록시 객체로 채워두고 실제로 그 연관된 엔티티의 데이터를 사용하는 시점 +// @OneToOne(fetch = FetchType.LAZY) // 지역 테이블과 1:1 관계 매핑 +// @JoinColumn(name = "region_id") +// private Region Region; diff --git a/src/main/java/com/example/umc_9th/domain/mission/Mission.java b/src/main/java/com/example/umc_9th/domain/mission/Mission.java index dbf1e0c..19cedbd 100644 --- a/src/main/java/com/example/umc_9th/domain/mission/Mission.java +++ b/src/main/java/com/example/umc_9th/domain/mission/Mission.java @@ -34,9 +34,11 @@ public class Mission extends BaseEntity { // @ColumnDefault("0") private int points=0; //미션 포인트 - @OneToMany(fetch = FetchType.LAZY) // 미션 테이블 N:1 관계 매핑 - @JoinColumn(name = "userMission_id") - private List userMissions ; + + //양방향 고려 +// @OneToMany(fetch = FetchType.LAZY) // 미션 테이블 N:1 관계 매핑 +// @JoinColumn(name = "userMission_id") +// private List userMissions ; @ManyToOne(fetch = FetchType.LAZY) // 리뷸 테이블 N:1 관계 매핑 diff --git a/src/main/java/com/example/umc_9th/domain/review/OwnerComment.java b/src/main/java/com/example/umc_9th/domain/review/OwnerComment.java new file mode 100644 index 0000000..6e6276a --- /dev/null +++ b/src/main/java/com/example/umc_9th/domain/review/OwnerComment.java @@ -0,0 +1,28 @@ +package com.example.umc_9th.domain.review; + + +import com.example.umc_9th.domain.member.Member; +import jakarta.persistence.*; +import lombok.*; + +@Entity +@Getter +@Builder +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor +public class OwnerComment { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; //pk + + + @Column(nullable = false, length = 255) + private String comment; // 답글 + + @ManyToOne(fetch = FetchType.LAZY) //N:1 관계 매핑 + @JoinColumn(name = "review_id") + private Review review; + + +} diff --git a/src/main/java/com/example/umc_9th/domain/review/Review.java b/src/main/java/com/example/umc_9th/domain/review/Review.java index 326555a..72cded3 100644 --- a/src/main/java/com/example/umc_9th/domain/review/Review.java +++ b/src/main/java/com/example/umc_9th/domain/review/Review.java @@ -33,13 +33,17 @@ public class Review extends BaseEntity { private Member member; - @OneToMany(fetch = FetchType.LAZY)//미션 테이블과1 :N관계매핑 - @JoinColumn(name="mission_id") - private List missions; - @OneToMany(fetch = FetchType.LAZY)//리뷰 이미지와 1:N관계매핑 - @JoinColumn(name="reviewImage_id") - private List reviewImages; + + + //양방향 고려 +// @OneToMany(fetch = FetchType.LAZY)//미션 테이블과1 :N관계매핑 +// @JoinColumn(name="mission_id") +// private List missions; +// +// @OneToMany(fetch = FetchType.LAZY)//리뷰 이미지와 1:N관계매핑 +// @JoinColumn(name="reviewImage_id") +// private List reviewImages; } diff --git a/src/main/java/com/example/umc_9th/domain/store/Store.java b/src/main/java/com/example/umc_9th/domain/store/Store.java index acebe48..dacfcec 100644 --- a/src/main/java/com/example/umc_9th/domain/store/Store.java +++ b/src/main/java/com/example/umc_9th/domain/store/Store.java @@ -26,10 +26,10 @@ public class Store extends BaseEntity { private String name; //가게 이름 - - @OneToMany(fetch = FetchType.LAZY)//미션 테이블과 1:N관계매핑 - @JoinColumn(name="mission_id") - private List missions; +//양방향 고려 +// @OneToMany(fetch = FetchType.LAZY)//미션 테이블과 1:N관계매핑 +// @JoinColumn(name="mission_id") +// private List missions; @OneToOne(fetch = FetchType.LAZY) //FoodCategory 테이블과 1:1 관계 매핑 @JoinColumn(name = "foodCategory_id") diff --git a/src/main/java/com/example/umc_9th/domain/store/mapping/FoodCategory.java b/src/main/java/com/example/umc_9th/domain/store/mapping/FoodCategory.java index 66d05b3..cedbcfa 100644 --- a/src/main/java/com/example/umc_9th/domain/store/mapping/FoodCategory.java +++ b/src/main/java/com/example/umc_9th/domain/store/mapping/FoodCategory.java @@ -27,9 +27,10 @@ public class FoodCategory { @JoinColumn(name = "store_id") private Store store; - @OneToMany(fetch = FetchType.LAZY)//멤버별 푸드 카테고리 테이블과 1:N관계매핑 - @JoinColumn(name="memberFoodCategory_id") - private ListmemberFoodCategory; + //양방향 고려 +// @OneToMany(fetch = FetchType.LAZY)//멤버별 푸드 카테고리 테이블과 1:N관계매핑 +// @JoinColumn(name="memberFoodCategory_id") +// private ListmemberFoodCategory;