<정규 회의록>
일시 : 2022.10.03
범위 : 자바 ORM 표준 JPA 프로그래밍 - 기본편 00~03
강의 : 김영한의 스프링 부트와 JPA 실무 완전 정복
활동 : 각 멤버가 github에 올린 내용 정리본 읽고 공부한 내용에 대해 발표 및 질의응답
정리 : https://github.com/GDSC-Ewha-4th
사진 :
<스터디 내용>
1. JPA 소개
from. 유리)
- SQL 중심적인 개발의 문제점
- 현재 데이커베이스 세계는 관계형 db->sql 중심적 개발
- 문제점 : 무한 반복과 지루한 코드 -> 객체를 자바 컬렉션에 저장하듯이 DB에 저장할 수 없을까?
2. JPA 소개
- orm : 객체 관계 매핑
- jpa : 자바 진영의 orm 기술 표준
- jpa를 사용해야 하는 이유 : 생산성, 유지보수, 패러다임의 불일치 해결 등
2. JPA 시작하기
from. 지은)
[프로젝트 생성]
- H2 데이터 베이스 세팅
- 실습용으로 적당한 데이터 베이스
- Maven으로 프로젝트 생성
- 자바용 프로젝트 관리 도구
- pom.xml에서 필요한 라이브러리를 추가해서 프로젝트 설정
- JPA 구현체인 하이버네이트, H2 데이터베이스, JPA xml bind, 등에 대한 dependency 추가
- JPA 관련 설정은 persistence.xml에서
- resources/META-INF/persistence.xml에 위치
- 데이터 베이스와 관련된 설정도 여기에서..
- 데이터베이스의 방언이란?
- jpa는 DB에 의존하면 안됨 (종속 X)
- SQL표준과 각각의 DB마다 다른 부분 (->데이터 베이스의 사투리)
[애플리케이션 개발]
- 데이터베이스에 필요한 테이블 생성
- 엔티티 클래스 생성
- @Entity, @Id 등의 애노테이션으로 관리
3. JPA 구동 방식
- persistence.xml의 설정 정보를 읽어서 persistence 클래스 생성
- persistence를 통해 EntityManagerFactory 클래스를 생성
- 데이터 처리가 필요할 때마다 EntityManagerFactory에서 EntityManager을 생성해서 사용
- 모든 데이터 처리는 트랜잭션 안에서 이루어져야만 함
4. JPQL
- 복잡한 데이터 조회는 JPQL을 사용
3. 영속성 관리 - 내부 동작 방식
from. 현정)
영속성 컨텍스트
1. JPA에서 가장 중요한 2가지
- 객체와 관계형 데이터베이스 매핑하기
- 영속성 컨테이너
2. 영속성 컨테이너란 ?
- JPA 이해하는데 가장 중요한 용어
- 엔티티 영구 저장하는 환경
- EntityManager.persist(entity);
3. 엔티티의 생명주기
- 비영속 : 영속성 컨테이너와 관계 없는 새로운 상태
- 영속 : 영속성 컨텍스트에 관리되는 상태
- 준영속 : 영속성 컨텍스트에 저장되었다가 분리된 상태
- 삭제
4. 플러시 특징
- 영속성 컨텍스트의 변경내용을 데이터베이스에 반영
- 영속성 컨텍스트의 변경내용을 데이터베이스에 동기화
- 트랜잭션이라는 작업 단위가 중요 (커밋 직전에만 동기화하면 됨)
5. 영속성 컨텍스트를 플러시하는 방법
- em.flush() - 직접 호출
- 트랜잭션 커밋 - 플러시 자동 호출
- JPQL 쿼리 실행 - 플러시 자동 호출
'4-1기 스터디 > Spring boot와 JPA 기초' 카테고리의 다른 글
3주차_2팀_정규회의록 (0) | 2022.10.27 |
---|---|
[Spring boot와 JPA 기초 스터디] 2주차_1팀_정규회의록 (0) | 2022.10.26 |
2주차_3팀_정규회의록 (0) | 2022.10.06 |
1주차_OT (0) | 2022.10.04 |
1주차 (예시) (0) | 2022.09.28 |
댓글