객체는 객체대로 설계하고 관계형 DB는 관계형 DB대로 설계한 후, 둘 사이의 차이들은 ORM 프레임워크가 해결해주겠다는 것
JPA는 애플리케이션과 JDBC 사이에서 동작




JPA는 표준 명세

JPA 버전
• 저장: jpa.persist(member)
• 조회: Member member = jpa.find(memberId)
• 수정: member.setName(“변경할 이름”)
• 삭제: jpa.remove(member)
기본적인 CRUD 코드가 다 구현되어있다. 그냥 메서드 가져다가 사용하면 된다!
유지보수 - 기존: 필드 변경시 모든 SQL 수정

유지보수 - JPA: 필드만 추가하면 됨, SQL은 JPA가 처리

1.JPA와 상속
2.JPA와 연관관계
3.JPA와 객체 그래프 탐색
4.JPA와 비교하기
JPA와 상속

JPA와 상속 - 저장

JPA와 상속 - 조회

JPA와 연관관계, 객체 그래프 탐색

신뢰할 수 있는 엔티티, 계층

JPA와 비교하기

1차 캐시와 동일성 보장
1. 같은 트랜잭션 안에서는 같은 엔티티를 반환 - 약간의 조회 성능 향상
2. DB Isolation Level이 Read Commit이어도 애플리케이션에서 Repeatable Read 보장

트랜잭션을 지원하는 쓰기 지연 - INSERT
1. 트랜잭션을 커밋할 때까지 INSERT SQL을 모음
2. JDBC BATCH SQL 기능을 사용해서 한번에 SQL 전송

지연 로딩과 즉시 로딩
• 지연 로딩: 객체가 실제 사용될 때 로딩
• 즉시 로딩: JOIN SQL로 한번에 연관된 객체까지 미리 조회
