1️⃣ PK·FK는 not null 설정 삭제
2️⃣ comment table 수정 ( 실수 )

- comment table에 PK로 잘못지정되어있던 boardId를 PK 지정 취소함
- 그러므로 복합기본키 필요없음 ⇒ 코드 수정함
@Column(name = "boardId")
private Long boardId;
3️⃣ 이미지 첨부 방법 변경
- 수정 전 : BLOB 데이터 타입을 위해 @LOB 어노테이션을 사용했었다.
- 수정 후 : URL과 확장자를 사용 하는 방법으로 수정
- 서버에 이미지를 저장하고 ⇒ 저장한 경로를 데이터베이스에 저장한다.
- 실제로 이미지를 가져올 때 데이터베이스에 있는 이미지 경로를 서버에서 찾아 이미지를 뿌려준다.
- 그래서 데이터타입을 BLOB으로 할 필요가 없다.
- 경로와 확장자 컬럼을 사용하고 데이터타입으로는 String을 사용한다.
// 서버에 이미지를 저장하고 -> 저장한 경로를 데이터베이스에 저장.
// 실제로 이미지를 가져올 때 데이터베이스에 있는 이미지 경로를 찾아서 서버에서 찾아 이미지를 뿌려줌
@Column(name = "gallImg") // 경로
private String gallImg;
@Column(name = "gallExtension") // 확장자
private String gallExtension;
4️⃣ 양방향 관계로 추가
GalleryEntity
// NoteEntity와 다대일 관계
@ManyToOne
private NoteEntity note;
NoteEntity
// PuppyEntity와 다대일 관계
@ManyToOne
private PuppyEntity puppy;
// GalleryEntity와 일대다 관계
@OneToMany(cascade = CascadeType.ALL) //CascadeType.All => 부모가 받는 속성을 자식도 그대로 물려받음
private List<GalleryEntity> galleryEntityList;
StoreEntity
// PuppyEntity와 일대다 관계
@OneToMany(cascade = CascadeType.ALL)
private List<PuppyEntity> puppyEntityList;
PuppyEntity
// NoteEntity와 일대다 관계
@OneToMany
private List<NoteEntity> noteEntityList;
// StoreEntity와 다대일 관계
@ManyToOne
private StoreEntity store;
// UserEntity와 다대일 관계
@ManyToOne
private UserEntity user;
5️⃣ join 하는 테이블들 매핑해주기
UserEntity

// CommentEntity 일대다 관계 추가
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "userId") // 외래키 지정
private List<CommentEntity> commentEntityList;
// BoardEntity 일대다 관계 추가
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "userId")
private List<BoardEntity> boardEntityList;
// LikeListEntity 일대다 관계 추가
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "userId")
private List<LikeListEntity> likeListEntityList;
CommentEntity
// UserEntity와 다대일 관계
@ManyToOne
@JoinColumn(name = "userId", insertable = false, updatable = false) // 작성하고 추가할수없다.
private UserEntity user;
BoardEntity
// UserEntity와 다대일 관계
@ManyToOne
@JoinColumn(name = "userId", insertable = false, updatable = false)
private UserEntity user;
LikeListEntity
// UserEntity와 다대일 관계
@ManyToOne
@JoinColumn(name = "userId", insertable = false, updatable = false)
private UserEntity user;
6️⃣ @Temporal(TemporalType.TIMESTAMP) 지원을 안한다는 오류가 나서 잠시 주석 처리 => 알아보는 중!
'Project 댕린이집' 카테고리의 다른 글
ERD 설계 (0) | 2023.12.23 |
---|---|
Repository & Service 초기 작성 (0) | 2023.12.22 |
Entity 작성 (1) | 2023.12.19 |
Controller 기본 설정 (1) | 2023.12.18 |
스프링부트 프로젝트 구조 / sts 파일 구조 오류 / ERD 설계 (0) | 2023.12.14 |
1️⃣ PK·FK는 not null 설정 삭제
2️⃣ comment table 수정 ( 실수 )

- comment table에 PK로 잘못지정되어있던 boardId를 PK 지정 취소함
- 그러므로 복합기본키 필요없음 ⇒ 코드 수정함
@Column(name = "boardId")
private Long boardId;
3️⃣ 이미지 첨부 방법 변경
- 수정 전 : BLOB 데이터 타입을 위해 @LOB 어노테이션을 사용했었다.
- 수정 후 : URL과 확장자를 사용 하는 방법으로 수정
- 서버에 이미지를 저장하고 ⇒ 저장한 경로를 데이터베이스에 저장한다.
- 실제로 이미지를 가져올 때 데이터베이스에 있는 이미지 경로를 서버에서 찾아 이미지를 뿌려준다.
- 그래서 데이터타입을 BLOB으로 할 필요가 없다.
- 경로와 확장자 컬럼을 사용하고 데이터타입으로는 String을 사용한다.
// 서버에 이미지를 저장하고 -> 저장한 경로를 데이터베이스에 저장.
// 실제로 이미지를 가져올 때 데이터베이스에 있는 이미지 경로를 찾아서 서버에서 찾아 이미지를 뿌려줌
@Column(name = "gallImg") // 경로
private String gallImg;
@Column(name = "gallExtension") // 확장자
private String gallExtension;
4️⃣ 양방향 관계로 추가
GalleryEntity
// NoteEntity와 다대일 관계
@ManyToOne
private NoteEntity note;
NoteEntity
// PuppyEntity와 다대일 관계
@ManyToOne
private PuppyEntity puppy;
// GalleryEntity와 일대다 관계
@OneToMany(cascade = CascadeType.ALL) //CascadeType.All => 부모가 받는 속성을 자식도 그대로 물려받음
private List<GalleryEntity> galleryEntityList;
StoreEntity
// PuppyEntity와 일대다 관계
@OneToMany(cascade = CascadeType.ALL)
private List<PuppyEntity> puppyEntityList;
PuppyEntity
// NoteEntity와 일대다 관계
@OneToMany
private List<NoteEntity> noteEntityList;
// StoreEntity와 다대일 관계
@ManyToOne
private StoreEntity store;
// UserEntity와 다대일 관계
@ManyToOne
private UserEntity user;
5️⃣ join 하는 테이블들 매핑해주기
UserEntity

// CommentEntity 일대다 관계 추가
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "userId") // 외래키 지정
private List<CommentEntity> commentEntityList;
// BoardEntity 일대다 관계 추가
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "userId")
private List<BoardEntity> boardEntityList;
// LikeListEntity 일대다 관계 추가
@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "userId")
private List<LikeListEntity> likeListEntityList;
CommentEntity
// UserEntity와 다대일 관계
@ManyToOne
@JoinColumn(name = "userId", insertable = false, updatable = false) // 작성하고 추가할수없다.
private UserEntity user;
BoardEntity
// UserEntity와 다대일 관계
@ManyToOne
@JoinColumn(name = "userId", insertable = false, updatable = false)
private UserEntity user;
LikeListEntity
// UserEntity와 다대일 관계
@ManyToOne
@JoinColumn(name = "userId", insertable = false, updatable = false)
private UserEntity user;
6️⃣ @Temporal(TemporalType.TIMESTAMP) 지원을 안한다는 오류가 나서 잠시 주석 처리 => 알아보는 중!
'Project 댕린이집' 카테고리의 다른 글
ERD 설계 (0) | 2023.12.23 |
---|---|
Repository & Service 초기 작성 (0) | 2023.12.22 |
Entity 작성 (1) | 2023.12.19 |
Controller 기본 설정 (1) | 2023.12.18 |
스프링부트 프로젝트 구조 / sts 파일 구조 오류 / ERD 설계 (0) | 2023.12.14 |