[4단원] DDL 생성 기능

DDL 생성 기능

  • JPA 는 어플의 엔티티 구조를 바탕으로 DB 스키마를 자동으로 생성할 수 있는 기능을 제공한다.
  • 개발자는 별도의 DDL을 작성할 필요 없이 어플의 도메인 모델만 관리하면 된다.

회원 이름에 대한 제약조건의 추가

  • 회원의 이름 필수 입력
  • 10자 초과 X 제약 조건 추가
@Entity
@Table(name="MEMBER")
public class Member {
    @Id
    @Column(name = "ID")
    private String id;
    @Column(name = "NAME", nullable = false, length = 10)
    private String username;
}
  • DDL
CREATE TABLE member
(
    id   VARCHAR(255) NOT NULL,
    name VARCHAR(10)  NOT NULL,
    CONSTRAINT pk_member PRIMARY KEY (id)
);

유니크 제약조건의 추가

@Entity(name="Member")
@Table(name="MEMBER", uniqueConstraints = {@UniqueConstraint(
    name = "NAME_AGE_UNIQUE",
    columnNames = {"NAME", "AGE" }
)})
public class Member {
    @Id
    @Column(name = "id")
    private String id;
    @Column(name = "name")
    private String username;
    private Integer age;
}
  • uniqueConstraints 속성을 사용하면 유니크 제약조건을 추가 가능
ALTER TABLE MEMBER
ADD CONSTRAINT NAME_AGE_UNIQUE UNIQUE (NAME, AGE);
Hibernate: create table member (id varchar(255) not null, age integer, name varchar(255), primary key (id)) engine=InnoDB
Hibernate: alter table member add constraint NAME_AGE_UNIQUE unique (name, age)
  • 테이블을 만드는 쿼리 → 제약조건 추가 순으로 이어진다.


Uploaded by N2T