[4단원] DDL 생성 기능과 제약조건

DDL 생성 기능과 제약조건 추가

1. 필수 입력과 문자 길이 제약조건

JPA에서는 @Column 어노테이션을 사용하여 엔티티의 필드에 대한 제약조건을 추가할 수 있음. 예를 들어, 회원 이름이 필수로 입력되어야 하며, 10자를 초과할 수 없다는 제약조건을 DDL에 추가할 수 있음.

예제 코드

@Entity
@Table(name="MEMBER")
public class Member {
    @Id
    @Column(name = "ID")
    private String id;

    @Column(name = "NAME", nullable = false, length = 10)
    private String username;
    // ...
}

여기서 nullable = false로 지정하면 DDL에 not null 제약조건이 추가되고, length = 10으로 지정하면 문자의 크기가 10자리로 제한됨.

2. 유니크 제약조건

@Table 어노테이션의 uniqueConstraints 속성을 사용하여 유니크 제약조건을 추가할 수 있음. 이는 테이블의 특정 컬럼들에 대해 유니크 제약조건을 적용함.

예제 코드

javaCopy code
@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;
    // ...
}

이 코드에서는 "NAME"과 "AGE" 컬럼에 대해 유니크 제약조건이 추가됨.

주의사항

이러한 DDL 생성 기능과 제약조건 추가 기능은 자동 생성되는 DDL에만 영향을 주며, JPA의 실행 로직에는 영향을 주지 않음.

따라서 개발자가 직접 DDL을 작성하고 관리하는 경우, 이러한 기능을 사용할 필요는 없음. 그러나 이 기능을 사용하면 엔티티만 보고도 다양한 제약조건을 쉽게 파악할 수 있어 유용함.


Uploaded by N2T

'자바 > JPA' 카테고리의 다른 글

[4단원] @Table  (0) 2023.10.22
[4단원] 데이터베이스 스키마 자동 생성  (0) 2023.10.22
[4단원] __**기본 키 Primary Key 매핑**__  (0) 2023.10.22
[4단원] 기본 키 직접 할당 전략  (0) 2023.10.22
[4단원] @Entity  (0) 2023.10.22