웹 개발에 경험이 있으신 분들이라면 관계형 데이터베이스의 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;
}