@Table : 테이블 지정.
catalog
- optional 설정값이며 database catalog를 지정한다.
name
- optional 설정값이며 table의 이름을 설정한다.
@GeneratedValue : 기본키를 생성하는 전략을 설정함.
Identity
- 기본키 생성을 데이터베이스에 위임함. 예를 들어 mysql과 oracle이 기본키를 자동 생성해주는 방식이 다른데 각 db 벤더사에 기본키 생성을 위임
.
@ManyToOne, @OneToMany : 테이블 간 다대일, 일대다 관계를 설정하는 어노테이션.
fetch
- FetchType.EAGER (즉시로딩)
- 해당 엔티티가 조회될 때 관계되는 엔티티를 즉시 로딩한다.
- FetchType.LAZY (지연로딩)
- 관계되는 엔티티를 사용할 때 데이터를 로딩한다.
cascade
- CascadeType.PERSIST
- 생성된 entity에 persist() 수행 시 연관 엔티티도 persist() 작업 수행
- CascadeType.MERGE
- detatch상태의 entity에 merge() 수행 시 연관 엔티티도 merge() 작업 수행
- CascadeType.REMOVE
- 해당 entity삭제시에 연관 엔티티도 함께 삭제 됨.
- CascadeType.REFRESH
- CascadeType.DETACH
- CascadeType.ALL
- 모든 CascadeType 적용