// Entity 어노테이션은 자동으로 mysql에 테이블 생성
@Entity
public class User {
@Id // primary key라는 것을 알려주는 annotation
@GeneratedValue(strategy= GenerationType.IDENTITY) // 프로젝트에 연결된 DB의 numbering 전략을 따른다.
private int id; // 시퀀스, auto_increment
@Column(nullable=false, length=30)
private String username;
@Column(nullable=false, length=100)
private String password;
@Column(nullable=false, length=50)
private String email;
@ColumnDefault("user")
private String role; // enum을 쓰는게 좋다. (admin, user, manager 중 1택)
@CreationTimestamp // 시간이 자동 입력
private Timestamp createDate;
}
요일이나 계절처럼 한정된 개수의 값들을 1개로 묶어서 사용할 때 열거 타입을 사용한다.
허용 가능한 값들 제한이 가능하며 자동완성, 오타검증, 텍스트 리팩토리 기능을 제공한다.
위의 예시의 경우 admin, user, manager 사용자 중 1개를 사용하는 enum 타입을 만드는 것이 좋다. 위의 3개의 경우 중에서만 사용하므로 오타가 나는 것 방지가 가능하다.
Jpa에 사용하는 기본 전략을 따라가지 않는다
프로젝트를 실행할 때마다 테이블 알아서 생성