JPA ( Java Persistence Api )

김정현·2023년 7월 18일
0

spring

목록 보기
3/3

1. SQL을 직접 사용하게 된다면

  • 1. 오류가 컴파일 시점이 아닌 런타임 시점에서 발견된다.
  • 2. 데이터베이스에 종속적이게 된다.
  • 3. 테이블을 하나 만들 때마다 CRUD쿼리가 항상 필요하다.
  • 4. 데이터베이스의 테이블과 객체는 패러다임이 다르다.

2. JPA

객체와 관계형 DB의 테이블을 짝지어 데이터를 영구적으로 저장할 수 있는 JAVA 규칙
기본 생성자가 필요하다.

3. JPA Annotation

1. @Entity

스프링이 객체와 테이블을 같은 것으로 바라본다.
저장된고, 관리되어야 하는 데이터

2. @Id

이 필드를 primary key로 간주

3. @GeneratedValue

primary key는 자동 생성되는 값

4. @Column

**객체의 필드와 테이블의 필드를 매핑

4. 기본 세팅

1. spring.jpa.hibernate.ddl-auto

  • create : 기존 테이블이 있다면 삭제 후 다시 생성
  • create-drop : 스프링이 종료될 때 테이블을 모두 제거
  • update : 객체와 테이블이 다른 부분만 변경
  • validate : 객체와 테이블이 동일한지 확인
  • none : 별다른 조치를 하지 않는다.

5. 기능

1. save : 주어지는 객체를 저장하거나 업데이트 시켜준다.

2. findAll : 주어지는 객체가 매핑된 테이블의 모든 데이터를 가져온다.

3. findById : id를 기준으로 특정한 1개의 데이터를 가져온다.

4. delete : 주어진 데이터를 제거하는 기능이다.

6. JPA Function Rule

1. By 앞의 구절 정리

find : 1건을 가져온다 반환타입은 객체가 될 수 있고 OPTIONal<타입>이 될 수 있다.
findAll: 쿼리의 결과물이 N개인 경우 사용 List<타입> 반환
exists : 쿼리 결과가 존재하는지 확인 반환 타입 Boolean

count : SQL의 결과 개수를 센다. 반환타입은 long

2. By 뒤에 구절 정리

And 또는 Or
GreaterThan : 초과
GreaterThanEqual : 이상
LessThan : 미만
LessThanEqual : 이하
Between : 사이에
StartsWith : ~로 시작하는
EndsWith : ~로 끝나는

profile
개발일지

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

뛰어난 글이네요, 감사합니다.

답글 달기