728x90
반응형
SMALL
📌 연관관계의 주인
- 연관관계 주인 = FK를 가진 오브젝트
-Board.java 수정하기
package com.cos.blog.model;
import java.sql.Timestamp;
import java.util.List;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import org.hibernate.annotations.ColumnDefault;
import org.hibernate.annotations.CreationTimestamp;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder //빌더패턴
@Entity
public class Board {
@Id // primary key
@GeneratedValue(strategy =GenerationType.IDENTITY)
// 해당 프로젝트에서 연결된 db의 넘버링 전략을 따라간다.
private int id;
@Column(nullable = false, length = 100)
private String title; // 게시판 제목
@Lob // 대용량 데이터
private String content; //게시판 내용 -> 엄청난 내용물이 필요함
// 섬머노트 라이브러리 <html>태그가 섞여서 디자인 됨
@ColumnDefault("0")
private int count;// 게시판 조회수
@ManyToOne(fetch = FetchType.EAGER) // board가 many 고, user가 one이라는 뜻
// 한명의 user는 여러개의 게시글을 쓸 수있다.
@JoinColumn(name="userId")
private User user; // DB는 오브젝트를 저장할수없다.
// FK, 자바는 오브젝트를 저장할수있다
//mappedBy 연관관계의 주인이 아니다(난 FK가 아니다) --> DB에 컬럼을 만들지 마세요
@OneToMany (mappedBy = "board", fetch = FetchType.EAGER)// 하나의 게시글은 여러개의 답변을 둘수있다.
// ONE = 게시글 , MANY = 답변 // joincolumn이 필요가 없음.
private List<Reply> reply;
@CreationTimestamp // 시간이 자동으로 입력된다.
private Timestamp createDate; // 데이터가 입력될때 현재시간 자동 입력
}
-'EAGER는 항상 조인을 해서 가져오고,
- LAZY는 그 객체(reply)를 실제로 사용할 때 처럼 필요에 의할 때, 조인을 해서 가져온다.'
- 게시글 상세보기 페이지에서 '댓글 펼치기' 가 있다면 LAZY를 이용해도 되지만, 없기 때문에 EAGER로 쓴다.
**이 부분 너무 어려워서 다시 재공부하기**
📌연관관계 만들기
@ManyToOne
@OneToMany
@OneToOne
@ManyToMany
ManyToMany는 사용하지 않는다. 그 이유는 서로의 primary key로만 중간 테이블을 생성해주는데,
날짜나 시간 다른 필드들이 필요할 수 있기 때문에,
내가 중간 테이블을 직접만들고 @OneToMany, @OneToMany를 사용한다.
https://ict-nroo.tistory.com/127
728x90
반응형
LIST
'Spring > Spring 블로그만들기' 카테고리의 다른 글
[Springboot] 나만의 블로그 만들기 - 13. id로 select 테스트 (0) | 2022.03.21 |
---|---|
[Springboot] 나만의 블로그 만들기 - 12. 회원가입 위한 insert, enum 사용법 (0) | 2022.03.21 |
[Springboot] 나만의 블로그 만들기 - 10. 테이블 생성(User, Board, Reply) (0) | 2022.03.21 |
[Springboot] 나만의 블로그 만들기 - 9. yml설정하기 (0) | 2022.03.21 |
[Springboot] 나만의 블로그 만들기 - 8. Lombok 세팅하기 (0) | 2022.03.21 |