JPA - DDL 생성 기능

DevSeoRex·2022년 10월 21일
0
post-thumbnail
post-custom-banner

DDL 생성기능

JPA에서 데이터베이스 스키마 자동 생성 기능을 사용하면,
DDL이 생성되어 데이터베이스에 전송된다.

예를 들어, 회원 테이블에 아래와 같은 제약조건을 줘야 한다면,

  • 제약조건 : 회원 이름은 필수, 최대 길이는 10자리
@Column(nullable = false, length = 10)

위와 같이 작성할 수 있다.

@Column

  • name : 필드와 매핑할 테이블의 컬럼 이름
  • insertable : 등록 가능 여부
  • updatable : 변경 가능 여부
  • nullable : 값을 false로 줄 경우, not null 제약 조건
  • unique : unique 제약 조건을 줄 때 사용
    - 잘 사용하지 않는다.
    • 제약 조건이 생성될때 제약 조건의 이름을 임의로 생성하기 때문에 알아보기가 힘들어 예외발생시 파악이 어렵다.
  • columnDefinition - 데이터 베이스 컬럼 정보를 직접 줄 수 있다.
@Column(columnDefinition = "varchar(100) default 'EMPTY'")
  • length : 문자 길이 제약조건, String 타입에만 사용한다.
  • precision - BigDecimal 또는 BigInteger 타입에서 사용, double & float 타입에는 적용이 되지 않는다. 정밀한 소수를 다루어야 할 때만 사용

@Enumerated

  • 기본값은 EnumType.ORDINAL이다.
  • ORDINAL은 순서로 들어가고, String은 문자로 들어간다.
  • ORDINAL은 Enum의 순서가 변경 될 경우, 중복된 데이터를 찾아 낼 수 없으므로, 사용하지 않아야 한다.

@Temporal

  • Hibernate 최신 버전을 사용할 경우 생략이 가능하다(LocalDateTime, LocalDate 타입일 경우)

@Lob

  • 지정할 수 있는 속성이 없다.
  • 문자면 CLOB, 숫자면 BLOB로 매핑된다.
  • CLOB : String, char[ ], java.sql.CLOB
  • BLOB : byte[ ], java.sql.BLOB

@Transient

  • 필드에 매핑되지 않는다.
  • 데이터베이스에 저장과 조회가 이루어지지 않는다.
  • 주로 메모리상에서만 임시로 어떤 값을 보관하고 싶을 때 사용한다.

출처 : 인프런(자바 ORM 표준 JPA 프로그래밍 기초편)

post-custom-banner

0개의 댓글