Skip to content
Original file line number Diff line number Diff line change
@@ -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<PostCategory> postCategories = new ArrayList<>();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
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;
}

public void setMember (Member member) {
this.member = member;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
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;
}
public void setMember (Member member) {
this.member = member;
}
}
Original file line number Diff line number Diff line change
@@ -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<Comment> comments = new ArrayList<>();

@OneToMany(mappedBy = "post",
cascade = CascadeType.REMOVE,
orphanRemoval = true)
private List<PostImage> postImages = new ArrayList<>();

@OneToMany(mappedBy = "post")
private List<Heart> hearts = new ArrayList<>();

@OneToMany(mappedBy = "post")
private List<PostCategory> postCategories = new ArrayList<>();

public void addImage (PostImage image) {
this.postImages.add(image);
image.setPost(this);
}
}
Original file line number Diff line number Diff line change
@@ -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;
}
Original file line number Diff line number Diff line change
@@ -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")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

도메인 이름 때문에 post_image_id는 어떠신가요?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

넵 수정했습니다~!

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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,8 @@
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;
Expand Down