diff --git a/src/main/java/umc/spring/file/domain/S3File.java b/src/main/java/umc/spring/file/domain/S3File.java index ec0eebd09e125a2f0fc95ef88da5bc44cec598e7..d4b953c0714d1c5254b68291a0f16d3e72f22f32 100644 --- a/src/main/java/umc/spring/file/domain/S3File.java +++ b/src/main/java/umc/spring/file/domain/S3File.java @@ -5,17 +5,10 @@ import lombok.Builder; import lombok.Getter; import umc.spring.post.data.entity.Post; -@Entity @Getter +@Embeddable public class S3File { - @Id @GeneratedValue - Long id; - - @ManyToOne - @JoinColumn(name = "project_id") - private Post post; - private String originalFileName; private String uploadFileName; diff --git a/src/main/java/umc/spring/file/repository/S3FileRepository.java b/src/main/java/umc/spring/file/repository/S3FileRepository.java deleted file mode 100644 index 34a341a86726cac2fa56ba31ada5f8be403233df..0000000000000000000000000000000000000000 --- a/src/main/java/umc/spring/file/repository/S3FileRepository.java +++ /dev/null @@ -1,7 +0,0 @@ -package umc.spring.file.repository; - -import org.springframework.data.jpa.repository.JpaRepository; -import umc.spring.file.domain.S3File; - -public interface S3FileRepository extends JpaRepository<S3File, Long> { -} diff --git a/src/main/java/umc/spring/post/data/dto/PostDto.java b/src/main/java/umc/spring/post/data/dto/PostDto.java index 54b1fe684583231db4ab2752353fa3073defc5c4..e6830cf366fd807ee20270249623e875f6754ef4 100644 --- a/src/main/java/umc/spring/post/data/dto/PostDto.java +++ b/src/main/java/umc/spring/post/data/dto/PostDto.java @@ -3,11 +3,12 @@ package umc.spring.post.data.dto; import lombok.Data; import lombok.Getter; import lombok.Setter; +import umc.spring.file.domain.S3File; @Data public class PostDto { String title; String body; - String image; int likeCount; + S3File s3File; } diff --git a/src/main/java/umc/spring/post/data/dto/PostResDto.java b/src/main/java/umc/spring/post/data/dto/PostResDto.java index ec280370808475eca4d715ef868045053ffed55a..ccd903e4b58dd96970a858e91181d06fba703bf2 100644 --- a/src/main/java/umc/spring/post/data/dto/PostResDto.java +++ b/src/main/java/umc/spring/post/data/dto/PostResDto.java @@ -2,6 +2,7 @@ package umc.spring.post.data.dto; import jakarta.persistence.*; import lombok.*; +import umc.spring.file.domain.S3File; import umc.spring.post.data.entity.Comment; import umc.spring.post.data.entity.Post; @@ -12,16 +13,18 @@ import java.util.List; @Data @Builder public class PostResDto { + Long id; Long userId; String title; String author; String body; - String image; int likeCount; + S3File s3File; Date createdTime; Date modifiedTime; List<CommentResDto> comments; + public static PostResDto toDTO(Post post){ List<CommentResDto> resDtos = new ArrayList<>(); post.getComments().forEach(comment -> { @@ -31,15 +34,13 @@ public class PostResDto { return PostResDto.builder() .id(post.getId()) .userId(post.getUserId()) + .s3File(post.getS3File()) .title(post.getTitle()) .author(post.getAuthor()) .body(post.getBody()) - .image(post.getImage()) .likeCount(post.getLikes().size()) .createdTime(post.getCreatedTime()) .modifiedTime(post.getModifiedTime()) .comments(resDtos).build(); } - - } diff --git a/src/main/java/umc/spring/post/data/entity/Post.java b/src/main/java/umc/spring/post/data/entity/Post.java index 323344dfbbcdfdfe147d42cb9fb9f260b4975063..b475be375fe9ea550bdb1ea7776a7179424e578a 100644 --- a/src/main/java/umc/spring/post/data/entity/Post.java +++ b/src/main/java/umc/spring/post/data/entity/Post.java @@ -3,6 +3,8 @@ package umc.spring.post.data.entity; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; +import umc.spring.file.domain.S3File; +import umc.spring.file.domain.S3FileDto; import java.util.ArrayList; import java.util.Date; @@ -27,9 +29,6 @@ public class Post{ @Column(nullable = false) private String body; - @Column(nullable = false) - private String image; - @Column(nullable = false) private int likeCount; @@ -42,6 +41,9 @@ public class Post{ @Column(nullable = true) private Date modifiedTime; + @Embedded + private S3File s3File; + @OneToMany(mappedBy = "post", cascade = CascadeType.ALL,fetch = FetchType.EAGER, orphanRemoval = true) private List<Comment> comments = new ArrayList<>(); @@ -50,6 +52,4 @@ public class Post{ orphanRemoval = true) private List<LikeData> likes = new ArrayList<>(); - - } diff --git a/src/main/java/umc/spring/post/service/PostServiceImpl.java b/src/main/java/umc/spring/post/service/PostServiceImpl.java index 2046e97ecd83c41131d5a3578b66eb8f787015e8..e5a286fd732a3aa41cab6830821a182458fce887 100644 --- a/src/main/java/umc/spring/post/service/PostServiceImpl.java +++ b/src/main/java/umc/spring/post/service/PostServiceImpl.java @@ -112,7 +112,7 @@ public class PostServiceImpl implements PostService{ if(Objects.equals(post.getUserId(), userInfoDto.getUserId())){ post.setTitle(postDto.getTitle() != null ? postDto.getTitle() : post.getTitle()); post.setBody(postDto.getBody() != null ? postDto.getBody() : post.getBody()); - post.setImage(postDto.getImage() != null ? postDto.getImage() : post.getImage()); + post.setS3File(postDto.getS3File() != null ? postDto.getS3File() : post.getS3File()); post.setModifiedTime(new Date()); postRepository.save(post); return true; @@ -233,6 +233,6 @@ public class PostServiceImpl implements PostService{ post.setTitle(postDto.getTitle()); post.setBody(postDto.getBody()); post.setLikeCount(0); - post.setImage(postDto.getImage()); + post.setS3File(postDto.getS3File()); } }