일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- gitrevert
- anyMatch
- @Entity
- DB방언
- initialDelay
- 네이버 연결된 서비스
- Git
- JPA
- 김영한JPA
- Invalid bound statement (not found)
- fixedDelay
- 무상태프로토콜
- 네이버로그인API
- hibernate.dialect
- 매핑정보가없는필드
- Transaction not successfully started
- 자바ORM표준프로그래밍
- RFC723x
- 멱등활용
- gitreset
- HTTP3
- http
- 캐쉬가능
- @Table
- SpringBoot
- org.apache.ibatis.binding.BindingException
- ERROR TYPE : org.apache.ibatis.binding.BindingException
- HTTPMESSAGE
- KAKAOLOGINAPI
- 데이터베이스 방언
Archives
- Today
- Total
twocowsong
DDL생성 기능 - 제약 조건, 유니크 제약 조건 본문
깃허브 정리 URL : https://github.com/sWineTake/jpa.git
조금더 조건을 추가해보겠습니다.
회원 이름을 필수로 입력되어야하며, 10자를 초과하면 안된다는 제약조건이 추가되었습니다.
Member 엔티티에 아래와 같이 name을 변경하였습니다.
@Column(name = "name", nullable = false, length = 10)
private String username;
@Column 매핑정보의 nullable 속성 값을 false로 지정하면 자동 생성되는 DDL에 not null 제약 조건을 추가할 수 있습니다. 그리고 length 속성 값을 사용하면 자동 생성되는 DDL에 문자의 크기를 지정 할 수 있습니다.
생성된 DDL 문은 아래와같습니다.
name 컬럼을 보시면 기존 VARCHAR(255)에서 VARCHAR(10) not null 로 변경된것을 확인 할 수 있습니다.
create table MEMBER (
id varchar(255) not null,
age integer,
create_date datetime(6),
description longtext,
last_modified_date datetime(6),
role_type varchar(255),
name varchar(10) not null,
primary key (id)
) engine=InnoDB
이번에는 유니크 제약조건을 만들어 주는 @Table의 uniqueConstraints 속성입니다.
...
@Table(name = "MEMBER", uniqueConstraints = {@UniqueConstraint(
name = "NAME_AGE_UNIQUE",
columnNames = {"name", "age"})})
public class Member {
...
}
생성된 DDL문은 아래와 같습니다.
alter table MEMBER
add constraint NAME_AGE_UNIQUE unique (name, age)
유니크 제약조건이 추가되었습니다.
본 게시글의 내용은 단지 DDL을 자동 생성할 때만 사용되고 JPA의 실행 로직에는 영향을 주지 않습니다.
따라서 스키마 자동 생성 기능을 사용하지 않고 직접 DDL을 만든다면 사용할 이유가 없습니다.
'IT > JPA' 카테고리의 다른 글
기본 키 직접 할당 전략 (0) | 2022.05.13 |
---|---|
기본키 매핑 - 기본 키 생성 전략 (0) | 2022.05.11 |
DB스키마 자동 생성 (0) | 2022.05.10 |
@Table (0) | 2022.05.09 |
@Entity (0) | 2022.05.09 |