반응형
- 객체와 테이블 매핑 : @Entity, @Table
- 데이터베이스 스키마 자동 생성 : @Column
- 필드와 컬럼 매핑 : @Id
- 기본 키 매핑 : @ManyToOne, @JoinColumn
객테와 테이블 매핑 : @Entity, @Table
- 기본 생성자 필수(public/protected)
- final, enum, interface, innerclass 사용 불가
- 저장 필드에도 final 사용 불가
- 속성
- @Entity(name = entityName) : 매핑할 엔티티 이름
- @Table(name = tableName) : 매핑할 테이블 이름
데이터베이스 스키마 자동 생성 : @Column
- DDL을 애플리케이션 실행 시점에 자동 생성
- 객체 중심
- DDL 생성 기능은 자동 생성 시에만 사용되고 실행 로직과는 무관하다
- DDL은 개발 장비에서만 사용, 운영에서는 후처리 하거나 사용X
- 속성 (hibernate.hbm2ddl.auto, value=)
- create: App실행 시점에 drop후 create함
- update : alter table
- validate : 엔티티와 테이블 매핑 확인
- none : 사용 안함
- 제약조건 추가 가능
- ex) @Column(nullable= false, length=10, uniqueConstraints = {@uniqueConstraints(name= “", columnName={“col1”, “col2"})})
필드와 컬럼 매핑
- @Enumerated : enum타입 매핑. Ordinal(enum순서) 사용 금지
- @temporal : Date, Calendar 매핑 시 사용(LocalDate, LocalDateTime은 지원이 되어서 생략 가능)
- @Lob : CLOB(문자), BLOB(그외)
- @transient : 필드 매핑 없음. DB 저장, 조회 등을 하지 않음
기본 키 매핑 : @ManyToOne, @JoinColumn
- @Id : 직접 할당
- @GeneratedValue (strategy = )
- IDENTITY : DB값
- SEQUENCE : db의 시퀀스 오브젝트 사용
- TABLE
- AUTO
- @TableGenerator : 자동생성
- name
- table
- pkColumnName : 시퀀스 컬럼명(seq_name)
- valueColumnNa : 시퀀스 값 컬럼명 (기본값 : next_val)
- pkColumnValue
- initialValue
- allocationSize
- catalog, schema
- uniqueConstraint(DDL)
반응형
'Develope > DataBase' 카테고리의 다른 글
[JPA] 객체지향 쿼리 언어 (0) | 2021.09.26 |
---|---|
[JPA] 영속성 컨텍스트 (0) | 2021.08.12 |
[JPA] Spring + MariaDB + JPA 환경셋팅 (0) | 2021.06.23 |
[JPA] 1-3. ORM 이란? JPA 소개 (0) | 2021.05.30 |
[JPA] SQL을 직접 다룰 때 발생하는 문제점 (0) | 2021.05.29 |