12.2. 책 기록 엔티티 만들기

웹 개발에 경험이 있으신 분들이라면 관계형 데이터베이스의 1:N 이라는 단어에 익숙하실 겁니다. 흔히들 One To Many라고 부르는 관계(relation) 는 두개의 데이터베이스 테이블 데이터가 연결되는 방식을 말하는데요. A 테이블의 데이터 행(row) 하나에 B테이블의 데이터 행이 여러 개 존재할 수 있는 경우 One To Many(일대다) 관계 라고 부릅니다.
책 정보와 책 기록은 One to Many 관계를 가집니다. 책 한 권에 여러개의 책 기록이 있을 수 있죠. 게시판을 상상해보면 쉬운데, 원글 하나에 댓글이 여러개 달리는 것과 동일합니다.


src/main/java > com.yse.dev.book > entity 패키지 아래에 BookLog.java 클래스 파일을 생성합니다.

src/main/java > com.yse.dev.book.entity > BookLog.java

Copypackage com.yse.dev.book.entity;  

import java.time.LocalDateTime;  

import javax.persistence.Column;  
import javax.persistence.FetchType;  
import javax.persistence.GeneratedValue;  
import javax.persistence.GenerationType;  
import javax.persistence.Id;  
import javax.persistence.JoinColumn;  
import javax.persistence.ManyToOne;  

import org.hibernate.annotations.CreationTimestamp;  

@Entity  
@Data  
@Builder  
@NoArgsConstructor  
@AllArgsConstructor  
public class BookLog {  
    @Id  
    @GeneratedValue(strategy = GenerationType.IDENTITY)  
    private Integer bookLogId;  

    @ManyToOne(fetch = FetchType.LAZY)  
    @JoinColumn(name="book_id")  
    private Book book;  

    @Column(columnDefinition = "TEXT")  
    private String comment;  

    private Integer page;  

    @CreationTimestamp  
    private LocalDateTime insertDateTime;  
}