Search

40. 스프링부트 포토그램 프로필 페이지 Image 모델 만들기

프로필 페이지 구현

1.포토 이미지 등록

-multipart/form-data

-UUID

해당화면에서 사진을 등록하는법을 진행할거다.
domain 폴더 안에 image 폴더 생성 후 그 안에 Image.java 생성
Subscribe.java에 해줬던거 참고해서 넣어준다.
@Builder @AllArgsConstructor @NoArgsConstructor @Data @Entity public class Image { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; }
Java
복사
기본틀을 잡아주고 사진등록에 필요한 컬럼을 선언 해준다
@Builder @AllArgsConstructor @NoArgsConstructor @Data @Entity public class Image { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String caption; //사진 설명 ex) 오늘 나 너무 피곤해! private String postImageUrl; //사진을 전송받아서 그 사진을 서버에 특정 폴더에 저장 - DB에 그 저장된 경로를 insert private User user; private LocalDateTime createDate; @PrePersist //DB INSERT 되기 직전에 실행 public void createDate() { this.createDate = LocalDateTime.now(); } }
Java
복사
추후에 이미지 좋아요 및 댓글 관련해서도 추가할예정이다.
지금은 만들예정이 아니라 주석으로만 만들예정이라고 처리해준다.
한명의 유저는 몇개의 이미지를 등록할수있는가 - 여러개
Image : User 일때 N : 1 이다
한개의 이미지는 몇명의 유저가 만들어낼 수 있는가 - 한명
Image : User 일때 1: 1 이다
@Builder @AllArgsConstructor @NoArgsConstructor @Data @Entity public class Image { // N , 1 @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String caption; //사진 설명 ex) 오늘 나 너무 피곤해! private String postImageUrl; //사진을 전송받아서 그 사진을 서버에 특정 폴더에 저장 - DB에 그 저장된 경로를 insert @ManyToOne private User user; // 1, 1 // 이미지 좋아요 - 추후 업데이트 // 댓글 -추후 업데이 private LocalDateTime createDate; @PrePersist //DB INSERT 되기 직전에 실행 public void createDate() { this.createDate = LocalDateTime.now(); } }
Java
복사
N : 1 의 관계이기 때문에 @ManyToOne을 추가해준다
데이터베이스에 만들어지면은 User는 오브젝트이기때문에 이대로 저장하면 FK로 저장되기 때문에 @JoinColumn(name = "userId") 사용해서 저장해준다
테이블이 생성됐으니까 이미지레파지토리가 필요하다
image 폴더안에 ImageRepository.java 인터페이스 생성
package com.cos.photogramstart.domain.image; import org.springframework.data.jpa.repository.JpaRepository; public interface ImageRepository extends JpaRepository<Image, Integer>{ }
Java
복사

2.포토 이미지 렌더링

업로드한 사진들이 나오도록 진행할거다.
추후 수업에서 진행할 예정.

*참고