전체 글35 JPA 공부일기(9) [자바 ORM 표준 JPA 프로그래밍 - 기본편] 섹션 8.프록시와 연관관계 정리- 프록시 프록시 연관관계 매핑된 엔티티의 경우 매핑된 엔티티도 함께 조회해야 할까? ex) Member를 조회할 때 Team도 조회? -> Member와 Team을 함께 조회해야할 때가 있고 Member만 필요할 때도 있음. em.find(): 데이터베이스를 통해서 실제 엔티티 객체 조회 em.getReference(): 데이터베이스 조회를 미루는 가짜(프록시)엔티티 객체 조회 프록시 특징 - 프록시 객체는 처음 사용할 때 한 번만 초기화 - 프록시 객체를 초기화 할 때, 프록시 객체가 실제 엔티티로 바뀌는 것은 아님, 초기화되면 프록시 객체를 통해서 실제 엔티티에 접근 가능(프록시 객체는 실제 객체의 참조(target)를.. 2023. 1. 30. JPA공부일기(8) [자바 ORM 표준 JPA 프로그래밍 - 기본편] 섹션 7.고급매핑- 상속관계 매핑 ~ 실전예제4. 상속관계 매핑 상속관계 매핑 관계형 데이터베이스는 상속관계x. 슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사. 슈퍼타입 서브타입 논리모델을 실제 물리모델로 구현하는 방법 3가지 1. 조인 전략 - @Inheritance(strategy=InheritanceType.JOINED) - @DiscriminatorColumn(name=“DTYPE”) : 부모테이블에 DTYPE이라는 컬럼명으로 자식테이블의 엔티티 명이 값으로 들어감. - @DiscriminatorValue(“XXX”): DTYPE에 들어갈 자식테이블의 엔티티 명을 지정해줄 수 있음. - 가장 정석적인 전략. - 장점: 테이블 정규화, .. 2023. 1. 27. JPA공부일기(7) [자바 ORM 표준 JPA 프로그래밍 - 기본편] 섹션 6. 다양한 연관관계 매핑- 다대일 ~ 실전예제3 - 다양한 연관관계 매핑 테이블은 외래키 하나로 두 테이블이 연관관계를 맺음. 객체 양방향 관계는 참조가 2군데 있으며, 둘중 하나에 외래키를 관리할 곳을 지정해야함. 다대일(N:1) - 단방향: 가장 많이 사용. @ManyToOne+ @JoinColumn - 양방향: 외래 키가 있는 쪽이 주인. 양쪽을 서로 참조. 반대편에 @OneToMany(mappedBy='') 일대다(1:N) - 단방향: 일대다에서 일이 연관관계의 주인. 테이블 일대다 관계는 항상 다 쪽에 외래키가 있음(객체와 테이블의 차이때문에 반대편 테이블의 외래키를 관리하는 특이한 구조). @OneToMany+ @JoinColumn 사용.. 2023. 1. 15. JPA공부일기(6) [자바 ORM 표준 JPA 프로그래밍 - 기본편] 섹션 5. 연관관계 매핑 기초: 단방향 연관관계~ 실전예제2.연관관계 매핑 연관관계가 필요한 이유 객체를 테이블에 맞춰서 데이터 중심으로 모델링 하면 협력관계를 맺을 수 없음. 테이블은 외래키로 조인을 해서 연관 테이블을 찾는 반면, 객체는 참조를 사용해 연관된 객체를 사용. 단방향 연관관계 @ManyToOne과 @JoinColumn(name="pk값")으로 연관관계 매핑. 양방향 연관관계 @ManyToOne과 @JoinColumn(name="pk값") + @OneToMany(mappedBy="반대쪽 객체명')으로 연관관계 매핑. -양방향 매핑 규칙 연관관계의 주인: 다대일의 관계에서 다인 경우가 주인. 연관관계의 주인만이 외래키를 관리(등록, 수정). .. 2023. 1. 12. JPA공부일기(5) [자바 ORM 표준 JPA 프로그래밍 - 기본편] 엔티티 매핑: 기본키 매핑 ~ 실전 예제 1 - 요구사항 분석과 기본 매핑 기본키 매핑 1. 직접 매핑: @Id 만 사용 2. 자동 매핑: @Id + @GeneratedValue(strategy=GenerationType.옵션) - IDENTITY: 기본 키 생성을 DB에 위임. MYSQL. JPA는 보통 EntityTransaction.commit() 시점에 insert SQL을 실행하지만, IDENTITY 전략은 EntityManager.persist() 시점에 즉시 insert SQL 실행(pk 값을 얻어서 영속성 컨텍스트의 1차 캐시에 저장해야 하기때문 -> 쓰기 지연의 장점 x).주로 MySQL, PostgreSQL, SQL Server, DB2.. 2023. 1. 2. JPA 공부일기(4) [자바 ORM 표준 JPA 프로그래밍 - 기본편] 엔티티 매핑: 객체와 테이블 매핑~ 필드와 컬럼 매핑 엔티티 매핑 - 객체와 테이블 매핑: @Entity, @Table - 필드와 컬럼 매핑: @Column - 기본 키 매핑: @Id - 연관관계 매핑: @ManyToOne, @JoinColumn @Entity: @Entity가 붙은 클래스는 JPA가 관리. 테이블과 매핑하기 위해서 필수. 기본 생성자가 반드시 있어야 함. @Table: 엔티티와 매핑할 테이블 지정. 데이터베이스 스키마 자동생성 jpa에서 애플리케이션 로딩시점에 db 테이블을 생성해주는 기능 지원. persistence.xml의 옵션 추가.(value에 옵션을 선택해서 넣음) 옵션 설명 사용시점 create 기존 테이블 삭제후 다시 생성 .. 2023. 1. 1. 이전 1 2 3 4 5 6 다음