From e7415a58fab587b2f2c5cbfe6b039741fc985312 Mon Sep 17 00:00:00 2001 From: EunjunOh123 Date: Sat, 3 Dec 2022 20:23:41 +0900 Subject: [PATCH 01/10] =?UTF-8?q?feat:=20=EB=8C=93=EA=B8=80=20=EC=97=94?= =?UTF-8?q?=ED=8B=B0=ED=8B=B0=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moduledomain/domain/board/Comment.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Comment.java diff --git a/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Comment.java b/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Comment.java new file mode 100644 index 0000000..6805792 --- /dev/null +++ b/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Comment.java @@ -0,0 +1,35 @@ +package com.gaethering.moduledomain.domain.board; + +import com.gaethering.moduledomain.domain.basic.BaseTimeEntity; +import com.gaethering.moduledomain.domain.member.Member; +import lombok.*; + +import javax.persistence.*; + +@Entity +@Getter +@Builder +@AllArgsConstructor +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Comment extends BaseTimeEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "comment_id", nullable = false) + private Long id; + + @Column(nullable = false) + private String comment; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "post_id", updatable = false) + private Post post; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "member_id", updatable = false) + private Member member; + + public void setPost (Post post) { + this.post = post; + } +} From 53b3f8e930fcf62c95f19a78942be01dbf172933 Mon Sep 17 00:00:00 2001 From: EunjunOh123 Date: Sat, 3 Dec 2022 20:47:11 +0900 Subject: [PATCH 02/10] =?UTF-8?q?feat:=20=EC=A2=8B=EC=95=84=EC=9A=94=20?= =?UTF-8?q?=EC=97=94=ED=8B=B0=ED=8B=B0=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moduledomain/domain/board/Heart.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Heart.java diff --git a/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Heart.java b/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Heart.java new file mode 100644 index 0000000..c24bf5c --- /dev/null +++ b/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Heart.java @@ -0,0 +1,31 @@ +package com.gaethering.moduledomain.domain.board; + +import com.gaethering.moduledomain.domain.member.Member; +import lombok.*; + +import javax.persistence.*; + +@Entity +@Getter +@Builder +@AllArgsConstructor +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Heart { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "heart_id") + private Long id; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "member_id", updatable = false) + private Member member; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "post_id", updatable = false) + private Post post; + + public void setPost (Post post) { + this.post = post; + } +} From 882550f90c3ce4030844ab07a4b00d03d4e0ffa8 Mon Sep 17 00:00:00 2001 From: EunjunOh123 Date: Sat, 3 Dec 2022 20:48:10 +0900 Subject: [PATCH 03/10] =?UTF-8?q?feat:=20=EA=B2=8C=EC=8B=9C=EA=B8=80=20?= =?UTF-8?q?=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EC=97=94=ED=8B=B0=ED=8B=B0=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moduledomain/domain/board/PostImage.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 module-domain/src/main/java/com/gaethering/moduledomain/domain/board/PostImage.java diff --git a/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/PostImage.java b/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/PostImage.java new file mode 100644 index 0000000..a58f6ab --- /dev/null +++ b/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/PostImage.java @@ -0,0 +1,30 @@ +package com.gaethering.moduledomain.domain.board; + +import lombok.*; + +import javax.persistence.*; + +@Entity +@Getter +@Builder +@AllArgsConstructor +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class PostImage { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "image_id") + private Long id; + + private String imageUrl; + + private boolean isRepresentative; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "post_id", updatable = false) + private Post post; + + public void setPost (Post post) { + this.post = post; + } +} From 71902620bafa92f8e67399618e82f88362b1df52 Mon Sep 17 00:00:00 2001 From: EunjunOh123 Date: Sat, 3 Dec 2022 22:18:58 +0900 Subject: [PATCH 04/10] =?UTF-8?q?feat:=20=ED=9A=8C=EC=9B=90=EA=B3=BC=20?= =?UTF-8?q?=EB=8C=93=EA=B8=80=20=EC=97=B0=EA=B4=80=EA=B4=80=EA=B3=84=20?= =?UTF-8?q?=EC=84=A4=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moduledomain/domain/board/Comment.java | 4 +++ .../moduledomain/domain/member/Member.java | 26 +++++++++++-------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Comment.java b/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Comment.java index 6805792..88d36fc 100644 --- a/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Comment.java +++ b/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Comment.java @@ -32,4 +32,8 @@ public class Comment extends BaseTimeEntity { public void setPost (Post post) { this.post = post; } + + public void setMember (Member member) { + this.member = member; + } } diff --git a/module-domain/src/main/java/com/gaethering/moduledomain/domain/member/Member.java b/module-domain/src/main/java/com/gaethering/moduledomain/domain/member/Member.java index 2a7020c..da2abc4 100644 --- a/module-domain/src/main/java/com/gaethering/moduledomain/domain/member/Member.java +++ b/module-domain/src/main/java/com/gaethering/moduledomain/domain/member/Member.java @@ -1,22 +1,14 @@ package com.gaethering.moduledomain.domain.member; import com.gaethering.moduledomain.domain.basic.BaseTimeEntity; +import com.gaethering.moduledomain.domain.board.Comment; import com.gaethering.moduledomain.domain.type.MemberRole; import com.gaethering.moduledomain.domain.type.MemberStatus; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.EnumType; -import javax.persistence.Enumerated; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.OneToMany; -import javax.persistence.OneToOne; +import javax.persistence.*; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Getter; @@ -58,9 +50,21 @@ public class Member extends BaseTimeEntity { @OneToMany(mappedBy = "member") private List pets = new ArrayList<>(); + @OneToMany( + mappedBy = "member", + cascade = CascadeType.REMOVE, + orphanRemoval = true + ) + private List comments = new ArrayList<>(); + public void addPet(Pet pet) { pet.setMember(this); pets.add(pet); } + public void addComment (Comment comment) { + comment.setMember(this); + comments.add(comment); + } + } From b98f4317b32e66b6778dd61661ff5f56d07c45f9 Mon Sep 17 00:00:00 2001 From: EunjunOh123 Date: Sat, 3 Dec 2022 22:33:16 +0900 Subject: [PATCH 05/10] =?UTF-8?q?feat:=20=ED=9A=8C=EC=9B=90-=EB=8C=93?= =?UTF-8?q?=EA=B8=80=20=EC=97=B0=EA=B4=80=EA=B4=80=EA=B3=84=20=EC=98=81?= =?UTF-8?q?=EC=86=8D=EC=84=B1=20=EC=A0=84=EC=9D=B4=20=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gaethering/moduledomain/domain/member/Member.java | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/module-domain/src/main/java/com/gaethering/moduledomain/domain/member/Member.java b/module-domain/src/main/java/com/gaethering/moduledomain/domain/member/Member.java index da2abc4..460f2f7 100644 --- a/module-domain/src/main/java/com/gaethering/moduledomain/domain/member/Member.java +++ b/module-domain/src/main/java/com/gaethering/moduledomain/domain/member/Member.java @@ -50,11 +50,7 @@ public class Member extends BaseTimeEntity { @OneToMany(mappedBy = "member") private List pets = new ArrayList<>(); - @OneToMany( - mappedBy = "member", - cascade = CascadeType.REMOVE, - orphanRemoval = true - ) + @OneToMany(mappedBy = "member") private List comments = new ArrayList<>(); public void addPet(Pet pet) { @@ -62,9 +58,4 @@ public void addPet(Pet pet) { pets.add(pet); } - public void addComment (Comment comment) { - comment.setMember(this); - comments.add(comment); - } - } From e8335a7990db35a16d8838b136b353e2a7815649 Mon Sep 17 00:00:00 2001 From: EunjunOh123 Date: Sat, 3 Dec 2022 23:37:21 +0900 Subject: [PATCH 06/10] =?UTF-8?q?feat:=20=ED=9A=8C=EC=9B=90-=EB=8C=93?= =?UTF-8?q?=EA=B8=80=20=EB=8B=A8=EB=B1=A1=ED=96=A5=20=EC=97=B0=EA=B4=80?= =?UTF-8?q?=EA=B4=80=EA=B3=84=EB=A1=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/gaethering/moduledomain/domain/member/Member.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/module-domain/src/main/java/com/gaethering/moduledomain/domain/member/Member.java b/module-domain/src/main/java/com/gaethering/moduledomain/domain/member/Member.java index 460f2f7..ad8bf51 100644 --- a/module-domain/src/main/java/com/gaethering/moduledomain/domain/member/Member.java +++ b/module-domain/src/main/java/com/gaethering/moduledomain/domain/member/Member.java @@ -1,7 +1,6 @@ package com.gaethering.moduledomain.domain.member; import com.gaethering.moduledomain.domain.basic.BaseTimeEntity; -import com.gaethering.moduledomain.domain.board.Comment; import com.gaethering.moduledomain.domain.type.MemberRole; import com.gaethering.moduledomain.domain.type.MemberStatus; import java.time.LocalDateTime; @@ -50,9 +49,6 @@ public class Member extends BaseTimeEntity { @OneToMany(mappedBy = "member") private List pets = new ArrayList<>(); - @OneToMany(mappedBy = "member") - private List comments = new ArrayList<>(); - public void addPet(Pet pet) { pet.setMember(this); pets.add(pet); From af4a3634e8fff0708435e994ab3e3eeba340ecb1 Mon Sep 17 00:00:00 2001 From: EunjunOh123 Date: Sat, 3 Dec 2022 23:50:27 +0900 Subject: [PATCH 07/10] =?UTF-8?q?feat:=20=EC=A2=8B=EC=95=84=EC=9A=94=20?= =?UTF-8?q?=EC=97=94=ED=8B=B0=ED=8B=B0=EC=97=90=20set=20=EB=A9=94=EC=84=9C?= =?UTF-8?q?=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gaethering/moduledomain/domain/board/Heart.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Heart.java b/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Heart.java index c24bf5c..ec6df2a 100644 --- a/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Heart.java +++ b/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Heart.java @@ -28,4 +28,7 @@ public class Heart { public void setPost (Post post) { this.post = post; } + public void setMember (Member member) { + this.member = member; + } } From db436144eeaf56d61a228b371983f2ab6abcadde Mon Sep 17 00:00:00 2001 From: EunjunOh123 Date: Sat, 3 Dec 2022 23:51:58 +0900 Subject: [PATCH 08/10] =?UTF-8?q?feat:=20category=20=EC=97=94=ED=8B=B0?= =?UTF-8?q?=ED=8B=B0=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moduledomain/domain/board/Category.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Category.java diff --git a/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Category.java b/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Category.java new file mode 100644 index 0000000..4f353aa --- /dev/null +++ b/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Category.java @@ -0,0 +1,26 @@ +package com.gaethering.moduledomain.domain.board; + +import lombok.*; + +import javax.persistence.*; +import java.util.ArrayList; +import java.util.List; + +@Entity +@Getter +@Builder +@AllArgsConstructor +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Category { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "category_id") + private Long id; + + @Column(nullable = false) + private String categoryName; + + @OneToMany(mappedBy = "category") + private List postCategories = new ArrayList<>(); +} From cdf456d8cf253b8150d2ef1deee1986459151432 Mon Sep 17 00:00:00 2001 From: EunjunOh123 Date: Sat, 3 Dec 2022 23:52:47 +0900 Subject: [PATCH 09/10] =?UTF-8?q?feat:=20PostCategory=20=EC=97=94=ED=8B=B0?= =?UTF-8?q?=ED=8B=B0=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/board/PostCategory.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 module-domain/src/main/java/com/gaethering/moduledomain/domain/board/PostCategory.java diff --git a/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/PostCategory.java b/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/PostCategory.java new file mode 100644 index 0000000..e322a1a --- /dev/null +++ b/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/PostCategory.java @@ -0,0 +1,26 @@ +package com.gaethering.moduledomain.domain.board; + +import lombok.*; + +import javax.persistence.*; + +@Entity +@Getter +@Builder +@AllArgsConstructor +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class PostCategory { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "post_category_id", nullable = false) + private Long id; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "post_id", updatable = false) + private Post post; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "category_id", updatable = false) + private Category category; +} From 05386251041d425283f54fb0c2f3328a6e3e1341 Mon Sep 17 00:00:00 2001 From: EunjunOh123 Date: Sat, 3 Dec 2022 23:54:12 +0900 Subject: [PATCH 10/10] =?UTF-8?q?feat:=20Post=20=EC=97=94=ED=8B=B0?= =?UTF-8?q?=ED=8B=B0=20=EC=83=9D=EC=84=B1=20(=EC=96=91=EB=B0=A9=ED=96=A5?= =?UTF-8?q?=20=EB=A7=A4=ED=95=91)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moduledomain/domain/board/Post.java | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Post.java diff --git a/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Post.java b/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Post.java new file mode 100644 index 0000000..e95867b --- /dev/null +++ b/module-domain/src/main/java/com/gaethering/moduledomain/domain/board/Post.java @@ -0,0 +1,55 @@ +package com.gaethering.moduledomain.domain.board; + +import com.gaethering.moduledomain.domain.basic.BaseTimeEntity; +import com.gaethering.moduledomain.domain.member.Member; +import lombok.*; +import org.hibernate.annotations.ColumnDefault; + +import javax.persistence.*; +import java.util.ArrayList; +import java.util.List; + +@Entity +@Getter +@Builder +@AllArgsConstructor +@NoArgsConstructor(access = AccessLevel.PROTECTED) +public class Post extends BaseTimeEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "post_id", nullable = false) + private Long id; + + @Column(nullable = false) + private String title; + + @Column(columnDefinition = "TEXT", nullable = false) + private String content; + + @ColumnDefault("0") + private int viewCnt; + + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "member_id") + private Member member; + + @OneToMany(mappedBy = "post") + private List comments = new ArrayList<>(); + + @OneToMany(mappedBy = "post", + cascade = CascadeType.REMOVE, + orphanRemoval = true) + private List postImages = new ArrayList<>(); + + @OneToMany(mappedBy = "post") + private List hearts = new ArrayList<>(); + + @OneToMany(mappedBy = "post") + private List postCategories = new ArrayList<>(); + + public void addImage (PostImage image) { + this.postImages.add(image); + image.setPost(this); + } +}