필드와 컬럼도 매핑 지정할 수 있다.
@Coloum은 객체 필드를 테이블 컬럼에 매핑한다.
name,nullable 옵션이 주로 사용 된다.
참고)insertable, updatable 속성은 데이터 베이스에 저장되어 있는 정보를 읽기만 하고 실수로 변경하는 것을 방지 하고 싶을 때 사용된다. 실제로 거의 사용하지 않는다.
enum RoleType {
ADMIN, USER
}
@Enumerated(EnumType.STRING)
private RoleType roleType;
EnumType.ORDINAL 은 enum에 정의된 순서대로 ADMIN은 0, USER 1값이 데이터 베이스에 저장된다.
EnumType.STRING은 enum이름 그대로 ADMIN은 ‘ADMIN’,USER라는 ‘USER’라는 문자로 데이터 베이스에 저장된다.
날짜 타입을 매핑할 때 사용한다. 자바의 Date타입에는 년월일 시분초가 있지만 데이터베이스에는 date,time,timestamp(날짜와 시간)라는 세가지 타입이 별도로 존재한다.
@Temporal 애너테이션은 JPA에서 날짜 및 시간 관련 필드의 유형을 지정하는 데 사용된다. 이 애너테이션은 java.util.Date 또는 java.util.Calendar 타입의 필드에 적용된다.
TemporalType.DATE:
날짜만 저장한다.. 시간 정보는 무시된다. (예: 2025-03-10)
@Temporal(TemporalType.DATE)
private Date dateField;