JPA에서 엔티티와 테이블을 매핑하는 것은 별거 없습니다.

그런데 필드와 컬럼은 다양합니다.

요구사항 추가

  1. 회원은 일반 회원과 관리자로 구분해야 한다.
  2. 회원 가입일과 수정일이 있어야 한다.
  3. 회원을 설명할 수 있는 필드가 있어야 한다. 이 필드는 길이 제한이 없다.

Member 클래스를 수정해봅시다.

package hellojpa;

import javax.persistence.*;
import java.util.Date;

@Entity
public class Member {

    @Id
    private Long id;

		//...1
    @Column(name = "name")
    private String username;

		//...2
    private Integer age;

		//...3
    @Enumerated(EnumType.STRING)
    private RoleType roleType;

		//...4
    @Temporal(TemporalType.TIMESTAMP)
    private Date createdDate; //생성일짜

    @Temporal(TemporalType.TIMESTAMP)
    private Date lastModifiedDate; //수정일짜

		//...5
    @Lob
    private String description;

    public Member() {
    }
}

그리고 RoleType을 enum으로 만들어줍시다.

package hellojpa;

public enum RoleType {
    USER, ADMIN
}
  1. 객체는 username으로 쓰고 싶은데 DB에는 name으로 쓰고 싶을 때

  2. Integer로 만들면 DB에서 Integer와 가장 알맞는 타입이 설정됩니다.

  3. 객체에서 enum 타입을 쓰고 싶을 때

  4. 날짜 타입을 쓰고 싶을 때