DB의 테이블에 Mapping 되는 클래스로 DB의 테이블과 1:1 매핑
테이블을 지정하는 어노테이션으로 파라미터로 테이블 명을 지정해준다.
생략 시 클래스의 이름을 테이블의 이름으로 자동 인식한다.
Entity 빈의 Primary Key를 의미한다.
하나의 Entity에 반드시 하나가 존재해야 한다.
복수키도 설정 가능
데이터베이스에 의해 자동으로 생성된 값
- AUTO(default): 자동으로 생성 전략 결정
- IDENTITY: DB가 기본 키 생성
- SEQUENCE: DB SEQUESNCE를 사용해서 기본 키 할당
- TABLE: DB에 키 생성 테이블 생성 후 이를 사용하여 기본키를 생성
해당 멤버 변수와 테이블의 컬럼 매핑
생략 시 필드의 이름이 테이블의 컬럼으로 자동 매핑
java.util.Date, java.util.Calendar 값을 매핑할 때 사용
지정 후 Application 실행 시, application.properties의 정보들로 dataSource 타입의 Bean을 만들고 hibernate 자동설정이 동작한다.
외래키 관계 구현
조건
1. UserConference, User 두 개의 Entity가 1:N 관계로 매칭
2. UserConference는 User 엔티티의 id 컬럼을 레퍼런스 한다.
@Entity
@Table(name="user")
@Getter
@Setter
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private @Column(name="name") String name;
private @Column(name="password") String password;
private @Column(name="user_id") String userId;
private @Column(name="user_category") long userCategory;
// 변수 명으로 테이블 컬럼 이름을 자동 매핑
private String position;
private String department;
// Insert 시 자동 입력
@CreationTimestamp
private @Column(name="cdate") Timestamp cdate;
// Update 시 자동 입력
@UpdateTimestamp
private @Column(name="udate") Timestamp udate;
}
@Entity
@Table(name="user_conference")
@Getter
@Setter
public class UserConference {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@ManyToOne
@JoinColumn(name="Conference_ID", referencedColumnName="ID")
private Conference conferencedId;
@ManyToOne
@JoinColumn(name="User_ID", referencedColumnName="ID")
private User userId;
}