일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- js fetch
- js await
- JPA준영속 상태
- spring 모듈 프로젝트
- js async await
- JS
- jpa준영속
- Flutter
- springboot gradle 모듈 프로젝트
- JPA
- 스프링부트
- javascript async await
- JavaScript
- 코프링
- jpa 영속성
- jpa 플러시
- javascript api 호출
- JPA플러쉬
- 준영속상태
- 코틀린
- jpa 플러쉬
- gradle 모듈 프로젝트
- JPA플러시
- springboot 모듈
- spring gradle 모듈
- 코틀린 클래스
- ja async
- javascript async
- js api 호출
- javascript fetch
Archives
- Today
- Total
매일 한줄 코딩
[JPA] 엔티티 매핑 본문
5. 엔티티 매핑
1. 필드와 컬럼 매핑
- 객체와 테이블 매핑: @Entity, @Table
- 필드와 컬럼 매핑: @Column
- 기본 키 매핑: @Id
- 연관관계 매핑: @ManyToOne,@JoinColumn
@Entity
기본값: 클래스 이름을 그대로 사용(예: Member)
같은 클래스 이름이 없으면 가급적 기본값을 사용한다.
@Table
엔티와 매핑할 테이블 지정
옵션
- name : 매핑할 테이블 명을 기입
- catalog ,schema : 데이터베이스 catalog , schema 매핑
- uniqueConstraints(DDL) : DDL생성시에 유니크 제약 조건 생성
@Table(uniqueConstraints = {@UniqueConstraint( name = "NAME_AGE_UNIQUE", columnNames = {"NAME", "AGE"} )})
@Column
컬럼 매핑
unique 같은경우 column에 사용할 경우 유니크명이 자동생성된다 ( 이상한 형태로 ) 그래서, @Table 에 유니크 제약조건을 넣으면 된다.
DDL생성기능 옵션의 예 (null 비허용, 길이 10)
- @Column(nullable = false, length = 10)
- 단, 생성될때의 조건이지, JPA의 실행로직에는 영향을 주지 않는다!
@Temporal
날짜 타입(java.util.Date, java.util.Calendar)을 매핑할 때 사용
참고: LocalDate, LocalDateTime을 사용할 때는 생략 가능(최신 하이버네이트 지원)
@Enumerated
enum 타입을 매핑할 때 사용
ORDINAL을 쓰게되면 순서를 저장하게되기 때문에 enum의 이름이 아니라, 순서가 저장된다. (Integer 타입으로 생성이 된다.)
추후에 enum이 추가된다면, 0,1,2 로 들어간 순서가 뒤바뀔 수 있기 때문이다.때문에 enum의 이름을 넣어줘야된다.
‼️ORDINAL 금지!
@Lob
CLOB , BLOB 사용할때 사용
매핑하는 필드 타입이 문자면 CLOB 매핑, 나머지는 BLOB 매핑
CLOB: String, char[], java.sql.CLOB
BLOB: byte[], java.sql. BLOB
@Transient
- 필드 매핑X
- 데이터베이스에 저장X, 조회X
- 주로 메모리상에서만 임시로 어떤 값을 보관하고 싶을 때 사용
// ex
@Transient
private Integer temp;
기본키 전략 정리 필요..
키본키 생성시점 null이라 영속성컨텍스트에 id를 알 수 없어 중간에 persist 하여야만 알 수 있다.
테이블전략으로도 퍼시스트 할때 오토인크리먼트 크기만큼 가져와 memory에 갖고 쓸 수 있다
'develop > JPA(ORM)' 카테고리의 다른 글
[JPA] 준영속 상태 (0) | 2022.12.22 |
---|---|
[JPA] 플러시 (0) | 2022.12.22 |
[JPA]영속성 컨텍스트 (0) | 2022.12.22 |
Comments