
* JPA가 내부적으로 어떤 매커니즘으로 동작하는지에 대한 매커니즘적 측면 * 실제 설계적 측면 - 객체와 관계형 데이터베이스를 어떻게 매핑해서 쓰는지 소개 객체와 테이블 매핑 : @Entity, @Table 필드와 컬럼 매핑 : @Column 기본 키 매핑 : @Id 연관관계 매핑 : @OneToOne, @ManyToOne, @OneToMany, @ManyToMany, @JoinColumn - JPA에서 가장 중요한 일은 엔티티와 테이블을 정확하게 매핑하는 것. 따라서 매핑 어노테이션을 정확하게 숙지해야 한다. 객체와 테이블 매핑 @Entity • @Entity가 붙은 클래스는 JPA가 관리, 엔티티라 한다. • JPA를 사용해서 테이블과 매핑할 클래스는 @Entity 필수 => 붙지 않으면 JPA가 ..

플러시(flush) : 영속성 컨텍스트의 변경내용을 데이터베이스에 반영 플러시 발생 변경 감지 수정된 엔티티 쓰기 지연 SQL 저장소에 등록 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송(등록, 수정, 삭제 쿼리) 영속성 컨텍스트를 플러시하는 방법 • em.flush() - 직접 호출 • 트랜잭션 커밋 - 플러시 자동 호출 • JPQL 쿼리 실행 - 플러시 자동 호출 -> em.flush를 해도 1차캐시는 유지가 된다. 그냥 쓰기지연 저장소에 쌓인 것들과 바귄 것들이 저장된다고 보면 된다. JPQL 쿼리 실행 시 플러시가 자동으로 호출되는 이유 플러시 모드 옵션 플러시는!!!!!!!!!!! 준영속 상태 준영속 상태로 만드는 방법 실습 저장을 미리 하고싶으면(커밋시점 전에) public class ..

JPA에서 가장 중요한 2가지 • 객체와 관계형 데이터베이스 매핑하기 (Object Relational Mapping) - 정적인 매핑 과정 • 영속성 컨텍스트 - 실제 동작 엔티티 매니저 팩토리와 엔티티 매니저 영속성 컨텍스트 • JPA를 이해하는데 가장 중요한 용어 • “엔티티를 영구 저장하는 환경”이라는 뜻 • EntityManager.persist(entity); => DB에 저장한다기 보단, 영속성 컨텍스트를 통해 엔티티를 영속화하는 개념 (즉 이거는 DB에 저장이 아닌 영속성 컨텍스트에 저장한다.) • 영속성 컨텍스트는 논리적인 개념 • 눈에 보이지 않는다. • 엔티티 매니저를 통해서 영속성 컨텍스트에 접근 J2SE 환경 : 엔티티 매니저와 영속성 컨텍스트가 1:1 - 엔티티 매니저를 생성하면..

JPA는 애플리케이션과 JDBC 사이에서 동작 - 원래는 개발자가 직접 해야하는 것을 JPA가 알아서 처리해줌. JPA 동작 - 저장 JPA 동작 - 조회 JPA의 역사와 소개 JPA 버전 - JPA 1.0(JSR 220) 2006년 : 초기 버전. 복합 키와 연관관계 기능이 부족 - JPA 2.0(JSR 317) 2009년 : 대부분의 ORM 기능을 포함, JPA Criteria 추가 - JPA 2.1(JSR 338) 2013년 : 스토어드 프로시저 접근, 컨버터(Converter), 엔티티 그래프 기능이 추가 JPA와 패러다임의 불일치 해결 1. JPA와 상속 2. JPA와 연관관계 3. JPA와 객체 그래프 탐색 4. JPA와 비교하기 JPA와 상속 - 저장 JPA와 상속 - 조회 JPA와 연관관계..

https://www.inflearn.com/course/ORM-JPA-Basic/dashboard 자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의 초급자를 위해 준비한 [웹 개발, 백엔드] 강의입니다. JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자 www.inflearn.com 1강. 지금 시대는 객체를 관계형 데이터베이스에 관리한다. SQL 중심적인 개발의 문제점 무한 반복, 지루한 코드 CRUD INSERT INTO … UPDATE … SELECT … DELETE … 자바 객체를 SQL로 ... SQL을 자바 객체로 . - 하나라도 중간에 실수로 빠뜨려버린다면 매우 곤란한 상황이 초래됨..
JPQL을 모르면 실무 개발이 불가능! 여러 테이블에서 그 복잡한 정보들을 어떻게 쉽게 가져올 것이냐에 대한 고민 -> 필요에 따라 조인도 남발해야 하고.... => JPA는 JPQL로 해결. JPQL은 테이블이 아닌, 객체를 대상으로 하는 객체지향 쿼리라고 생각하면 된다,. public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); t..

강의명 : 인프런 [자바 ORM 표준 JPA 프로그래밍 - 기본편] 기본 세팅 Persistence.xml ( resources 하위 META-INF/persistence.xml) Pom.xml 4.0.0 org.springframework.boot spring-boot-starter-parent 2.7.14 com.example exjpa 0.0.1-SNAPSHOT exjpa exjpa 1.8 com.h2database h2 1.4.199 org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-data-jpa org.springframework.boot spring-boot-starter-test ..