프로필 페이지 구현
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.포토 이미지 렌더링
업로드한 사진들이 나오도록 진행할거다.
추후 수업에서 진행할 예정.