Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 코딩테스트
- CRUD
- 정보처리기사필기
- 스프링
- 정처기
- 소프트웨어설계
- 어노테이션
- springboot
- 파이썬
- 프로그래머스
- 정처기공부
- function
- spring
- java
- 소프트웨어개발
- 파이선
- 정처기예상문제
- 게시판프로젝트
- 자바의정석
- PYTHON
- 이것이자바다
- 정보처리기사
- 게시판
- 스프링부트
- 게시판만들기
- 정처기필기
- 자바
- CRUD구현
- 정처기설명
- 자바의정석요약
Archives
- Today
- Total
Helmi
Entity 매핑 관련 어노테이션 본문
어노테이션 | 설명 |
@Entity | 클래스 엔티티로 선언 |
@Table | 엔티티와 매핑할 테이블 지정 |
@Id | 테이블의 기본키에 사용할 속성 지정 |
@GeneratedValue | 키 값 생성하는 전략 명시 |
@Column | 필드와 컬럼 매핑 |
@Lob | BLOB, CLOB 타입 매핑 |
@CreationTimestamp | insert시 시간 자동 저장 |
@UpdateTimestamp | update시 시간 자동 저장 |
@Enumerated | enum 타입 매핑 |
@Transient | 해당 필드 데이터베이스 매핑 무시 |
@Temporal | 날짜 타입 매핑 |
@CreateDate | 엔티티가 생성되어 저장될 때 시간 자동 저장 |
@LastModifiedDate | 조회한 엔티티 값을 변경시 시간 자동 저장 |
CLOB, BLOB 의미
: CLOB - 사이즈가 큰 데이터를 외부 파일로 저장하기 위한 데이터 타입. 문자형 대용량 파일 저장위해 사용
BLOB - 바이너리 데이터를 DB 외부에 저장하기 위한 타입. 이미지, 사운드, 비디오 같은 멀티미디어 데이터 다룰 때 사용
@Entity 는 클래스의 상단에 입력하면 JPA에 엔티티 클래스라는 것을 알려줌. Entity는 반드시 기본키 가져야 함.
@Id 이용해 id 멤버 변수를 상품 테이블의 기본키로 설정.
@GeneratedValue어노테이션 통한 기본키 생성 전략 4가지
생성 전략 | 설명 |
GenerationType.AUTO (default) | JPA 구현체가 자동으로 생성 전략 결정 |
GenerationType.IDENTITY | 기본키 생성을 데이터베이스에 위임 ex) MySql 데이터베이스 경우 AUTO_INCREMENT 사용해 기본키 생성 |
GenerationType.SEQUENCE | 데이터베이스 시퀀스 오브젝트 이용한 기본키 생성 @SequenceGenerator 사용해 시퀀스 등록 필요 |
GenerationType.TABLE | 키 생성용 테이블 사용. @TableGenerator 필요 |
MySQL에서 AUTO_INCREMENT 이용해 데이터베이스에 INSERT 쿼리문 보내면 자동으로 기본키 값 증가 가능.
Sequence 경우 기본키의 초기값, 증가값, 최댓값, 최솟값 지정 가능
속성 | 설명 | 기본값 |
name | 필드와 매핑할 컬럼 이름 설정 | 객체 필드 이름 |
unique(DDL) | 유니크 제약 조건 설정 | |
insertable | insert 가능 여부 | true |
updatable | update 가능 여부 | true |
length | String 타입 문자 길이 제약조건 설정 | 255 |
nullable(DDL) | null값 허용 여부 설정, false 설정 시 DDL 생성시에 not null 제약조건 추가 | |
columnDefinition | 데이터베이스 컬럼 정보 직접 기술 ex) @Column(columnDefinition ="varchar(5) defualt '10' not null") |
|
percision, scale(DDL) | BigDecimal 타입에서 사용(Biginteger 가능) percision은 소수점 포함한 전체 자리 수, scale은 소수점 자리수 Double과 float 타입에는 적용되지 않음 |
DDL(Data Definition Language) 의미
: 테이블, 스키마, 인덱스, 뷰, 도메인을 정의, 변경, 제거시 사용하는 언어.
ex) 테이블 생성/ 삭제하는 CREATE, DROP 등
'SpringBoot' 카테고리의 다른 글
쿼리 메소드 - 1 (0) | 2023.03.14 |
---|---|
Repository 설계하기 (0) | 2023.03.14 |
상품 엔티티 설계 (0) | 2023.03.13 |
쇼핑몰 프로젝트 생성 (0) | 2023.03.12 |
JPA란? (0) | 2023.03.07 |