전체 글58 [Java] JPA 강의 - 6 (다양한 연관관계 매핑) 연관관계 매핑시 고려사항 3가지 1. 다중성 - 다대일 : @ManyToOne --> 대칭성이 있음 - 일대다 : @OneToMany - 일대일 : @OneToOne - 다대다 : @ManyToMany --> 실무에서 사용하지 말것 2. 단방향, 양방향 테이블 - 외래 키 하나로 양쪽 조인 가능 객체 - 참조용 필드가 있는 쪽으로만 참조 가능 - 한쪽만 참조하면 단방향 - 양쪽이 서로 참조하면 양방향 --> 객체 입장에서는 단방향 2개가 있는 것. 연관관계 주인을 확실히 알아야함 3. 연관관계의 주인 - 테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음 - 객체 양방향 관계는 참조가 2군데 있기 때문에 둘 중 테이블의 외래키를 관리할 곳을 지정해야함 - 연관관계의 주인이란? 외래키를 관리하는 참조 -.. 2024. 1. 29. [Java] JPA 강의 - 5 (연관관계 매핑 기초) 단반향 연관관계 @ManyToOne - 다대일 매핑 - FK가 있는 쪽이 항상 N ('다'가 됨) @JoinColumn(name = "XXX_ID") - 외래키로 사용할 컬럼과 그 컬럼의 이름 지정 양방향 연관관계와 연관관계의 주인 양방향 매핑 - 외래키가 있으면 서로의 연관을 알 수 있음 - mappedBy 어떤 것과 mapping 되어 있는가? 객체와 테이블이 관계를 맺는 차이 객체와 연관관계 = 2개 - 단방향 연관관계가 2개 있는 것임 테이블 연관관계 = 1개 - FK 하나로 연관관계가 끝이 남 둘의 차이점을 이해해야 함 객체의 양방향 관계 객체의 양방향 관계는 사실 양방향 관계가 아닌 서로 다른 단방향 관계 2개임 객체를 양방향으로 참조하려면 단방향 연관관계를 2개 만들어야 함 테이블의 양방향 .. 2024. 1. 18. [Java] JPA 강의 - 4 (엔티티 매핑) 객체와 테이블 매핑 @Entity - JPA가 관리하는 엔티티 - 기본 생성자 필수 - 저장할 필드에 final 사용하면 안됨 - 속성 : name -> JPA에서 사용할 엔티티 이름을 지정 @Table 속성 - name : 매핑할 테이블 이름 - catalog : 데이터베이스 catalog 매핑 - schema : 데이터베이스 스키마 매핑 - uniqueConstraints : DDL 생성 시 유니크 제약 조건 생성 데이터베이스 스키마 자동 생성 - DDL을 애플리케이션 실행 시점에 자동 생성 (ex. Insert into) - 생성된 DDL은 개발 장비에서만 사용 (운영서버에서 사용X) 속성 - create : DROP + CREATE 기존 테이블 삭제 후 다시 생성 - create-drop : 종료.. 2024. 1. 17. [Java] JPA 강의 - 3 (영속성 관리) 1. 영속성 컨텍스트 - 엔티티를 영구 저장하는 환경 - 엔티티 매니저를 통해서 영속성 컨텍스트에 접근함 - 논리적인 개념 2. 엔티티의 생명주기 - 비영속 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 - 영속 영속성 컨텍스트에 관리되는 상태 - 준영속 영속성 컨텍스트에 저장되었다가 분리된 상태 - 삭제 삭제된 상태 3. 영속성 컨텍스트의 이점 - 1차 캐시 1차 캐시에서 조회 : DB를 직접 조회하는 것이 아닌 1차 캐시에서 조회하는 것 데이터베이스에서 조회 : 1차 캐시에 없으면 DB에서 조회 후 1차 캐시에 저장하고 반환함 --> JPA는 엔티티를 조회하면 영속성 컨텍스트에 올림 - 동일성 보장 같은 트랜잭션 안에서 1차 캐시로 읽으면 동일성을 보장함 - 트랜잭션을 지원하는 쓰기 지연 엔티티 매.. 2024. 1. 11. 이전 1 ··· 4 5 6 7 8 9 10 ··· 15 다음