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 |
Tags
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #KDT #기본문법 #데이터베이스 #Computer #Science #CPU #메모리
- aws #아키텍트 #과정 #vpc #인프라 구축 #퍼블릭 #보안그룹 #생성 #http #ipv4
- aws #아키텍트 #과정 #vpc #인프라 구축 #public subnet #route53 #igw #연결
- aws #아키텍트 #과정 #vpc #인프라 구축 #public subnet #internet gateway #연결
- 비트 #바이트 #이진수
- aws #아키텍트 #과정 #s3 #bucket #생성 #이미지업로드
- sasac #aws 클라우드 #아키텍트 과정 #가상화 #vmbox #vmware #esxi #tar #selinux
- 쓰레드 #쓰레드풀 #프로세스
- virtualbox #vmware #router #nat #pat #네트워크 구성도 #aws #ubuntu #
- aws #클라우드 #퍼블릭 클라우드 #아키텍트 #과정
- oracle vmbox #rocky #linux9 #명령어 #암호화인증 #해시알고리즘
- samba #가상머신 #daemon
- storage #로컬스토리지 #세션스토리지 #백그라운드 서비스
- tar #build #배포 #통신포트 #설정방법 #linux #apache
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- aws #아키텍트 #과정 #vpc #인프라 구축 #public subnet #igw #curl #명령어 #http
- 공간복잡도 #공간자원 #캐시메모리 #SRAM #DRAM #시간복잡도
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스
- aws #아키텍트 #과정 #vpc #인프라 구축 #php #웹페이지 #http #public #instance
- aws #아키텍트 #과정 #vpc #인프라 구축 #public subnet #private subnet
- aws #아키텍트 #과정 #vpc #인프라 구축 #퍼블릭 서브넷 #안에 #ec2 인스턴스 #ami #생성 #firewall
- aws #아키텍트 #과정 #vpc #인프라 구축
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #OSI #ISO #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #딥러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #DBMS #Oracle #MongoDB #아키텍쳐 #DB
- haproxy #wordpree #php #linux #가상화 #가상머신 #내용정리
- 프로세스 #CPU #시공유 #커널
- ubuntu #설정변경 #vmware #vmbox #linux #명령어
- 스파르타코딩클럽 #부트캠프 #IT #백엔드 #머신러닝 #AI #서버 #자동화 #SQL #기본문법 #데이터베이스 #웹개발
- 인바운드 #아웃바운드 #방화벽설정
- mysql #linux #설정 #wordpress #웹사이트 #db 연결 #
Archives
- Today
- Total
요리사에서 IT개발자로
스파르타 부트캠프 Entity 맵핑 (다락방) 본문
@Entity
@Table(name="MEMBER")
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(insertable = true, updatable = false)
private Long mbrSeq;
@Column
private String deptCd;
@Enumerated(value = EnumType.STRING) // 필수
private MemberStatus memberStatus;
@Column
private LocalDateTime regDttm;
@Lob
private String clobContents;
@Transient
private String tempField;
}
DDL 생성 기능은 DDL을 자동 생성할 때만 사용되고
JPA의 실행 로직에는 영향을 주지 않는다.
객체와 테이블 매핑은
@Entity, @Table
필드와 컬럼 매핑
@Column
기본키 매핑
@Id
연관관계 매핑
@ManyToOne @JoinColumn
@Entity가 붙은 Class는
EntityManager에 의해서 관리 될 수 있고
실제 객체와 테이블을 맵핑하는 Annotation이다.
@Table은
엔티티와 매핑할 테이블을 지정하는 Annotation이다.
속성 | 기능 | 기본값 |
name | 테이블 이름 매핑 | 엔티티 이름을 사용 |
catalog | 데이터베이스 catalog 매핑 | |
schema | 데이터베이스 schema 매핑 | |
uniqueConstraints(DDL) | DDL 생성 시 유니크 제약조건 생성 |
@ID는 PK(Primary Key)
해당 Entity의 고유함을 보장하는 기본키와 대칭한다.
@GeneratedValue는
기본키를 자동 생성해주기 위한 전략을 선택하면 자동으로 생성해주는 값.
@Column
@Column
private String deptCd;
속성 | 기능 | 기본값 |
name | 필드와 매핑할 테이블의 컬럼 이름 | 객체의 필드 이름 |
insertable, updatable | 등록, 변경 가능 여부 | TRUE |
nullable(DDL) | null 값의 허용 여부를 설정한다. false로 설정하면 DDL 생성 시에 not null 제약조건이 붙는다. |
|
unique(DDL) | DDL 생성 시 유니크 제약조건 생성 | |
columnDefinition (DDL) |
@Table의 uniqueConstraints와 같지만 한 컬럼에 간단히 유니크 제약조건을 걸 때 사용한다 | |
nullable(DDL) | 데이터베이스 컬럼 정보를 직접 줄 수 있다. ex) varchar(100) default ‘EMPTY’ |
|
length(DDL) | 문자 길이 제약조건, String 타입에만 사용한다. | 255 |
precision, scale(DDL) | BigDecimal 타입에서 사용한다(BigInteger도 사용할 수 있다). precision은 소수점을 포함한 전체 자 릿수를, scale은 소수의 자릿수이다. 참고로 double, float 타입에는 적용되지 않는다. 아주 큰 숫자나 정밀한 소수를 다루어야 할 때만 사용한다. |
precision = 1 |
@Enumerated
@Enumerated(value= EnumType.STRING) // 필수
private MemberStatus memberStatus;
속성 | 기능 | 기본값 |
value | • EnumType.ORDINAL: enum 순서를 데이터베이스에 저장 • EnumType.STRING: enum 이름을 데이터베이스에 저장(Data Type : varchar) |
EnumType.ORDINAL |
// JPA는 @Enumerated가 붙은 열거체(Enum)에 맞는 상수이름에 맞게 데이터를 넣어준다.
@Entity
public class Member {
@Enumerated(value=EnumType.STRING) // 필수
private MemberStatus memberStatus;
}
public enum MemberStatus {
SIGNUP, // 상수이름에 맞게 데이터가 들어간다.
WITHDRAWAL,
10; // Class 필드 선언 규칙과 같이 숫자로 시작은 불가
}
@Temporal
사용하면 DBMS data type에 맞도록 매핑이 가능하다.
Data의 많은 문제를 해결한
LocalDate, LocalDateTime, ZonedDateTIme으로 대체가 가능하다.
@Column
private LocalDateTime regDttm;
@Lob
Class속성 타입으로 Clob, Blob을 구분한다.
Clob : String, Char[]
Blob : Byte[]
@Lob
private String clobContents;
@Transient
데이터 베이스 물리 컬럼으로
존재하지 않는 객체의 필드를 선언하는 Annotation이다.
데이터베이스에 저장, 조회가, 불가하며
어플리케이션 내부에서만 임시로 사용할 데이터로 사용한다.
@Transient
private String tempField;
https://hs-backend.tistory.com/201
반응형
'Spring' 카테고리의 다른 글
스파르타 부트캠프 Query Method (다락방) (0) | 2024.06.18 |
---|---|
스파르타 부트캠프 연관관계 맵핑 (다락방) (0) | 2024.06.18 |
스파르타 부트캠프 JPA 동작 원리 (다락방) (0) | 2024.06.18 |
스파르타 부트캠프 객체와 관계형 DB (다락방) (0) | 2024.06.18 |
스파르타 부트캠프 JPA (다락방) (0) | 2024.06.18 |