TIL

엔티티 매핑

@Entity

@Entity(name = "User")
public class Member

@Table

@Entity
@Table(name = "MBR")
public class Member

속성

데이터베이스 스키마 자동 생성

데이터베이스 스키마 자동 생성 - 속성

hibernate.hbm2ddl.auto, spring.jpa.hibernate.ddl-auto

데이터베이스 스키마 자동 생성 - 주의

DDL 생성 기능

필드와 칼럼 매핑

@Entity
public class Member {

    @Id
    private Long id;

    @Column(name = "name")
    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;

@Column

@Column(precision = 19, scale = 2)
private BigDecimal number;

@Enumerated

@Temporal

@Transient

기본 키 매핑

기본 키 매핑 어노테이션

@Id @GeneratedValue
private Long id;

기본 키 매핑 방법

IDNTITY 전략 - 특징

@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private String id;

SEQUENCE 전략 - 특징

@Entity
@SequenceGenerator(
        name = "MEMBER_SEQ_GENERATOR", 
        sequenceName = "MEMBER_SEQ",//매핑할 데이터베이스 시퀀스 이름
        initialValue = 1, allocationSize = 1)
public class Member {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MEMBER_SEQ_GENERATOR")
    private Long id;
@Column(precision = 19, scale = 2)
private BigDecimal number;

@Enumerated

@Temporal

@Transient

기본 키 매핑

기본 키 매핑 어노테이션

@Id @GeneratedValue
private Long id;

기본 키 매핑 방법

IDNTITY 전략 - 특징

@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private String id;

SEQUENCE 전략 - 특징

@Entity
@SequenceGenerator(
        name = "MEMBER_SEQ_GENERATOR", 
        sequenceName = "MEMBER_SEQ",//매핑할 데이터베이스 시퀀스 이름
        initialValue = 1, allocationSize = 1)
public class Member {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MEMBER_SEQ_GENERATOR")
    private Long id;

TABLE 전략 - 특징

권장하는 식별자 전략