Close
Close full mode
logo만렙 개발자 키우기

(2) 다양한 매핑 사용

Git RepositoryEdit on Github
Last update: a year ago by nowwaterReading time: 2 min
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
...
}
public enum RoleType {
ADMIN, USER
}

코드 설명

1. roleType : 자바의 enum을 사용해서 회원 타입을 구분. 자바의 enum을 사용하려면 @Enumerated 어노테이션으로 매핑.

2. createDate, lastModifiedDate : 자바의 날짜 타입은 @Temporal을 사용해서 매핑

3. description : 회원을 설명하는 필드는 길이 제한이 없다. 데이타베이스 VARCHAR 타입 대신에 CLOB 타입으로 저장. @Lob를 사용하면 CLOB, BLOB 타입을 매핑할 수 있다.

오라클 기준 LOB 설명

  • CLOB(Character Large OBject) : 텍스트 형태 파일 크기를 4GB까지 지원
  • BLOB(Binary Large OBject) : 이진파일(이미지 등) 형태의 파일 크기를 4GB까지 지원
🚀 JPA — Previous
(1) @Entity, @Table
Next — 🚀 JPA
(3) 데이터베이스 스키마 자동 생성