[Spring] Spring JPA

Kyungmin·2023년 10월 7일
0

Spring

목록 보기
4/39

1. Spring JPA / EntityManager

JPA를 활용하게 되면 Course Bean을 데이터베이스에 존재하는 테이블로 직접 매핑

✅ Course 클래스

  • @Entity 를 사용히여 테이블과의 직접 매핑
  • @Entity 가 붙은 클래스는 JPA가 관리
  • 기본 생성자는 필수(JPA가 엔티티 객체 생성 시 기본 생성자를 사용하므로)

✅ CourseJpaRepository 클래스

  • @Transactional : JPA 로 쿼리를 실행하려고 할 떄마다 트랜잭션을 허용하기 위해 필요

✅ H2콘솔

2. Spring data JPA

코드의 양이 적어짐

✅ CourseJpaCommandRunner 클래스

  • JDBA, JPA 와 달리 spring data JPA 에서 데이터를 업데이트 하거나 삽입할 때는 insert() 메서드를 사용하지 않고 save() 메서드를 사용한다.

✅ CourseSpringDataJpaRepository 클래스

다음과 같이 인터페이스만 생성해주면 된다.

3. 커스텀 메서드 사용

  • 커스텀 메서스를 사용
코드를 // 커스텀 메서드 사용
System.out.println(repository.findByAuthor("in28minutes"));
System.out.println(repository.findByAuthor(""));입력하세요

과 같이 사용이 가능하다.

📝 용어 정리

  • JPA : ORM 이며 객제 지향과 db 간 발생하는 차이를 매핑해준다.
    즉, 객체는 차례대로 설계하고 db와의 차이점에 대해서는 ORM 을 통해서 매핑
    JPA는 JDBC API 를 통해서 db에 접근하며 java application & JDBC api 사이에 존재하게 된다. JPA는 인터페이스의 모음이며 Hibernates는 그 구현체이다.

  • Entity : DB 테이블과 매핑되는 객체

  • EntityManager : DB table과 매핑된 객체인 entity에 대한 CRUD 작업을 수행하기 위한 method들을 제공, entity의 라이프 사이클과 관리등을 담당

  • PersistenceContext(영속성 컨텍스트)

  1. entity의 영속화에 관여
  2. entity 들이 DB로 바로 가지 않고 entity를 저장하는 환경으로서의 역할을 함
profile
Backend Developer

0개의 댓글

관련 채용 정보