Back-End/JPA 15

JPA - 다양한 연관관계 매핑

✔️ 연관관계 매핑시 고려사항 3가지다중성다대일 : @ManyToOne일대다 : @OneToMany일대일 : @OneToOne다대다 : @ManyToMany단방향, 양방향테이블외래 키 하나로 양쪽 조인 가능방향 개념 x객체참조용 필드가 있는 쪽으로만 참조 가능한쪽만 참조 : 단방향양족이 서로 참조 : 양방향연관관계 주인테이블은 외래 키 하나로 두 테이블이 연관관계를 맺음객체 양방향은 참조가 2개 (A -> B, B-> A)때문에 연관관계 주인을 설정하여 외래 키를 관리주인의 반대편은 외래 키에 영향을 주지 않고 단순 조회만 가능 항상 N (다) 쪽이 FK키를 갖기에 연관관계 주인이 된다. ✔️ N : 1 [ 다대일 ]가장 많이 사용다대일의 반대는 1:N [일대다]   외래 키가 있는 쪽이 연관관계의 주인..

Back-End/JPA 2024.07.09

JPA - 연관관계 매핑 기초

객체와 테이블의 연관관계는 매우 다르다. 객체는 참조 하여 연관된 객체를 찾지만테이블은 외래 키를 매핑(조인)하여 연관된 테이블을 찾는다.  ✔️ 단방향 연관관계 @Entitypublic class Member { // 기본 id 및 정보 생략 @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team;}Member 가 Team을 단방향으로만 알고 있는 상태  ✔️ 양방향 연관관계 @Entitypublic class Member { // 기본 id 및 정보 생략 @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team;} @Entitypublic class Team..

Back-End/JPA 2024.07.05

JPA - 엔티티 매핑

✔️ 객체와 테이블 매핑 @Entity클래스에 붙이는 애노테이션해당 클래스는 엔티티로써 JPA가 관리JPA를 사용해서 테이블과 매핑할 클래스는 @Entity가 필수기본 생성자 필수 (public | protected)final 클래스, enum, interface, inner 클래스 사용 불가저장할 필드에 final 사용 x 엔티티 객체는 리플렉션으로 (기본 생성자 + 필드 값 주입 방식) 생성한다. 그런데 final 필드로 선언해버리면 리플렉션을 통한 값 주입이 불가능해진다.  💠 속성name : JPA에서 사용할 엔티티 이름 지정, Default : 클래스 이름 그대로 사용  @Table@Table 은 엔티티와 매핑할 테이블 지정속성기능기본값name매핑할 테이블 이름엔티티 이름을 사용catalog데..

Back-End/JPA 2024.07.05

JPA - 영속성 관리

JPA 핵심객체와 관계형 데이터베이스 매핑영속성 컨텍스트  영속성 컨텍스트의미 : 엔티티를 영구 저장하는 환경 영속성 컨텍스트는 논리적인 개념엔티티 매니저를 통해 영속성 컨텍스트에 접근 J2SE 환경엔티티 매니저 1 : 1 영속성 컨텍스트J2EE, 스프링 프레임 워크같은 컨테이너 환경엔티티 매니저 N : 1 영속성 컨텍스트 🌿 엔티티의 생명주기비영속 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태new / transientex) 객체를 생성한 상태 영속영속성 컨텍스트에 관리되는 상태managedex) persist(객체);    - 객체는 영속상태이기에 관리 대상준영속영속성 컨텍스트에 저장되었다가 분리된 상태detached준영속 상태로 만드는 법 em.detach(객체)  // 특정 엔티티만 준영속 상..

Back-End/JPA 2024.07.01

JPA 소개

JPA : Java Persistence API자바 진영의 ORM 기술 표준  ORM : Object-relational mapping (객체 관계 매핑)객체를 관계형 데이터베이스에 맞게 매핑해주는 기술 Persist는 엔티티를 영구 저장한다는 뜻이다.  JPA도 결국에는 JDBC API를 사용해서 쿼리를 날린다. 저장 (Entity 객체를 Persist)1.Entity를 분석2. insert 쿼리를 생성3. JDBC API 사용4. 패러다임 불일치를 해결 조회1. select sql 생성2. JDBC API 사용3. ResultSet 매핑4. 패러다임 불일치 해결 JPA는 표준 명세로 인터페이스의 모음이다.JPA2.1 표준 명세를 구현한 3가지 구현체중 하이버네이트를 중점으로 사용한다. JPA 사용시 ..

Back-End/JPA 2024.07.01