애플리케이션 - 객체 지향 언어 (Java, Scala, …)데이터베이스 - 관계형 DB (Oracle, MySQL, …)지금 시대는 객체를 관계형 DB에 관리SQL 중심적인 개발의 문제점무한 반복, 지루한 코드 (CRUD)패러다임의 불일치: 객체 vs 관계형 데이터베
H2 데이터베이스 설치와 실행 - 이미 설치됨window의 경우 H2 데이터베이스 설치 후 cmd 창에서 다음 명령어 실행cd C:\\Program Files (x86)\\H2\\binh2.bat프로젝트 생성자바 8 이상메이븐 설정 (groupid: jpa-basic,
JPA에서 가장 중요한 2가지객체와 관계형 데이터베이스 매핑영속성 컨텍스트영속성 컨텍스트JPA를 이해하는데 가장 중요한 용어엔티티를 영구 저장하는 환경EntityManager.persist(entity); → 엔티티를 DB에 저장하는 것이 아니라 영속성 컨텍스트에 저장
객체와 테이블 매핑: @Entity, @Table필드와 컬럼 매핑: @Column기본 키 매핑: @ID연관관계 매핑: @ManyToOne, @JoinColumn@Entity@Entity가 붙은 클래스는 JPA가 관리, 엔티티주의기본 생성자 필수(파라미터가 없는 publ
객체지향 설계의 목표자율적인 객체들의 협력 공동체를 만드는 것객체를 테이블에 맞추어 데이터 중심으로 모델링하면 협력 관계를 만들 수 없음연관된 테이블을 찾을 때테이블 - 외래 키로 조인 vs 객체 - 참조 사용객체 지향 모델링객체의 참조와 테이블의 외래 키를 매핑양방향
다중성다대일 - @ManyToOne, 일대다 - @OneToMany, 일대일 - @OneToOne, 다대다 - @ManyToMany(실무에서 사용X)데이터베이스 관점에서 고려단방향, 양방향테이블 - 외래 키 하나로 양쪽 조인 가능, 방향 X객체 - 참조용 필드가 있는
관계형 데이터베이스 - 상속 관계 X객체의 상속과 구조와 DB의 슈퍼타입 서브타입 관계를 매핑각각 테이블로 변환 → 조인 전략통합 테이블로 변환 → 단일 테이블 전략서브타입 테이블로 변환 → 구현 클래스마다 테이블 전략@Inheritance(strategy=Inheri
em.find(): 데이터베이스를 통해서 실제 엔티티 객체 조회 - 쿼리 Oem.getReference(): 데이터베이스 조회를 미루는 가짜(프록시) 엔티티 객체 조회 - 쿼리 X프록시 특징실제 클래스 상속받아서 생성, 겉 모양이 같음사용자 입장에서는 진짜 객체인지 프
엔티티 타입@Entity로 정의하는 객체데이터가 변해도 식별자로 지속해서 추적 가능값 타입int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체식별자 X 값만 있음 변경시 추적 불가 \- 기본값 타입 \- 임베디드 타입(em