22. Board 테이블 생성
by 볼빵빵오춘기21. 데이터베이스 한글 인코딩 은 이미 해논 상태여서 PASS
Board 클래스
게시물을 적은 사람이 누구인지 알아야하기 때문에 작성자부분을 아래코드와 같이 적어야 한다고 생각하지만
private int userId;
userId값을 통해서 다시 user를 select하든지 userId값으로 board와 join을 해서 가져와야하기 때문에
oRM에서는 fk로 찾는게 아니라 오브젝트를 바로 넣으면 된다.
하지만 자바는 object를 저장할 수 있지만 DB에서는 오브젝트를 저장할 수 없기 때문에 충돌이 난다.
⇒ @JoinColumn(name="userId") 필드값으로 들어간다고 적어준다.
⇒ @ManyToOne(fetch = FetchType.EAGER) 를 코드에 넣음으로써 연관관계에 대해서 알려준다.
package com.cos.blog.model;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.*;
import org.hibernate.annotations.ColumnDefault;
import org.hibernate.annotations.CreationTimestamp;
import javax.persistence.*;
import java.sql.Timestamp;
import java.util.List;
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder // 빌더패턴
@Table(name = "META_BOARD")
public class Board {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
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) // Many = Board, User = One
@JoinColumn(name="userId")
private User user; // DB는 오브젝트를 저장할 수 없다 . FK, 자바는 오브젝트를 저장할 수 있다.
@CreationTimestamp
private Timestamp createDate;
}
'강의 따라하기 > blog' 카테고리의 다른 글
24. 연관관계의 주인 (0) | 2024.01.01 |
---|---|
23. Reply 테이블 생성 (1) | 2024.01.01 |
20. User 테이블 생성 (0) | 2024.01.01 |
19 yaml 설정하기 (1) | 2024.01.01 |
18 lombok 세팅 및 사용해보기 (0) | 2024.01.01 |
블로그의 정보
Hello 춘기's world
볼빵빵오춘기