@Entity
가 붙은 클래스는 JPA가 관리, 엔티티라 한다.@Entity
필수enum
, interface
클래스 사용 불가final
사용 불가(drop + create)
create
와 같으나 종료 시점에 테이블 drop
@Entity
@Getter @Setter
//@Table(name="MBR")
public class Member {
@Id
private Long id;
@Column(unique = true, length = 10)
private String name;
// 컬럼명 지정
@Column(name = "myage")
private int age;
// 날짜타입 매핑
@Temporal(TemporalType.TIMESTAMP)
private Date createDate;
// 날짜타입 매핑
@Temporal(TemporalType.TIMESTAMP)
private Date lastModifiedDate;
// 매핑 무시
@Transient
private int temp;
}
@GeneratedValue
를 사용해주면 됩니다.기본 키를 자동 생성해주는 어노테이션입니다.
자동생성 -> 전략
-> identity : 데이터베이스에 위임
-> sequence : 데이터베이스 시퀀스 오브젝트 사용
@SequenceGenerator 필요
-> table : 키 생성용 테이블 사용, 모든 DB에서 사용
@TableGenerator
-> auto : 방언에 따라 자동 지정, 기본값
@SequenceGenerator
-> name : 식별자 이름
-> sequenceName : 데이터베이스 등록되어 있는 시퀀스 이름
(hibernate_sequence)
-> initialValue : 시퀀스 DDL을 생성할때 처음 시작하는 수 지정
-> allocationSize : 데이터베이스 시퀀스 값이 하나씩 증가하도록 설정
이 값을 1로 설정
-> catalog, schema : 데이베이스 catalog, schema 이름 설정