Entity
데이터 베이스에 저장하기 위해 정의한 클래스. Domain이라 생각하면 된다.
유저가 직접 정의한 클래스다.
RDBMS의 테이블을 객체화시킨 것과 같다.
따라서 테이블의 이름과 컬럼 정보들을 가지고 있다.
@Id
PK값으로 두려는 변수를 선언.
@GeneratedValue 어노테이션을 통해 Id값을 어떻게 생성할지에 대해 설정할 수 있다.
@Table
별도 이름을 가진 DB 테이블과 매핑하며, @Table(name=" ")와 같은 방식으로 사용한다.
풀어서 설명하자면, 기본적으로 @Entity로 선언된 클래스 이름은 실제 DB의 테이블 명과 일치하는 것을 매핑함. 따라서 @Entity의 클래스 이름과 DB 테이블 명이 다른 경우에 매핑할 때 사용한다.
@Column
@Column(name=" ")의 형식으로 사용한다.
이 선언은 반드시 필요한 선언은 아니다.
하지만 @Table의 용도와 비슷하게, @Column에서 지정한 변수명과 DB의 컬럼 명을 다르게 해주고 싶을 때 사용한다.
그렇지 않은 경우엔 기본적으로 멤버 변수와 일치하는 DB 컬럼을 매핑해준다.
Repository
Entity생성이 끝나면 이제 JpaRepository 인터페이스를 사용하여 Repository 인터페이스를 만들자.
JpaRepository를 상속받을 땐 사용될 Entity 클래스와 Id값이 들어간다. JpaRepository <T, ID>
이와 같이 JpaRepository를 상속하면 해당 인터페이스는 Entity에 대해 아래의 기능을 제공한다.
- save()
레코드 저장(insert, update) - findOne()
PK로 하나의 레코드 찾기 - findAll()
전체 레코드 가져오기.
sort, pageable가능 - count()
레코드 갯수 - delete()
레코드 삭제
🔽 REFERENCE
'# 1. Language > ☕ Java' 카테고리의 다른 글
Boolean과 boolean의 차이 = 참조타입과 원시타입의 차이 (0) | 2021.09.17 |
---|---|
SpringBoot # Controller-Service-DAO-mapper.xml (0) | 2021.09.17 |
자주 사용되는 Lombok 어노테이션 (0) | 2021.09.14 |
Java # zulu란? / zulu 다운로드 방법 (0) | 2021.08.31 |
Java Eclipse 단축키 (0) | 2021.08.26 |