4.3 다양한 매핑 사용
package jpabook.start;
import javax.persistence.*;
import java.util.Date;
@Entity
@Table(name="MEMBER")
public class Member {
@Id
@Column(name = "ID")
private String id;
@Column(name = "NAME", nullable = false, length = 10) //추가
private String username;
private Integer age;
@Enumerated(EnumType.STRING)
private RoleType roleType;
@Temporal(TemporalType.TIMESTAMP)
private Date createdDate;
@Temporal(TemporalType.TIMESTAMP)
private Date lastModifiedDate;
@Lob
private String description;
@Transient
private String temp;
//Getter, Setter
...
}
package jpabook.start;
public enum RoleType {
ADMIN, USER
}
코드 설명
- roleType : 자바의 enum을 사용해서 회원 타입을 구분. 자바의 enum을 사용하려면 @Enumerated 어노테이션으로 매핑.
- createDate, lastModifiedDate : 자바의 날짜 타입은 @Temporal을 사용해서 매핑
- description : 회원을 설명하는 필드는 길이 제한이 없다. 데이타베이스 VARCHAR 타입 대신에 CLOB 타입으로 저장. @Lob를 사용하면 CLOB, BLOB 타입을 매핑할 수 있다.
오라클 기준 LOB 설명
- CLOB(CHARACTER LARGE OBJECT) :텍스트형태파일 크기를 4GB까지 지원
- BLOB(BINARY LARGE OBJECT) : 이진파일(이미지등) 형태의 파일 크기를 4BG까지 지원