티스토리챌린지5 [📗자바 ORM 표준 JPA 프로그래밍] 다대일, 일대다, 일대일, 다대다 매핑 전략 1. 엔티티 연관관계 매핑 개요JPA에서 엔티티의 연관관계를 매핑할 때, 다음 세 가지를 고려해야 한다.다중성: 두 엔티티 간의 관계가 몇 대 몇인지 정의한다.다대일 (@ManyToOne): 가장 일반적인 관계.일대다 (@OneToMany): 한 엔티티가 여러 엔티티와 연결.일대일 (@OneToOne): 하나의 엔티티가 하나의 엔티티와만 연결.다대다 (@ManyToMany): 연결 테이블을 통해 구현.단방향 vs 양방향: 관계의 방향성을 설정한다.단방향: 한쪽 엔티티만 다른 쪽을 참조.양방향: 양쪽 엔티티가 서로를 참조.연관관계의 주인: 외래 키를 관리하는 엔티티를 설정한다.주인은 외래 키를 가진 테이블과 매핑된 엔티티이다.주인이 아닌 엔티티는 mappedBy를 사용해 주인을 지정한다.2. 다대일 관계 .. DB/JPA 2024. 11. 20. [📗자바 ORM 표준 JPA 프로그래밍] 양방향 연관관계 매핑 및 주인 정하기 지난 포스팅에서는 단방향 연관관계에 알아보았다. 이어서, 조금 더 복잡한 개념인 양방향 연관관계에 대해 알아보자.5.3 양방향 연관관계양방향 연관관계는 양쪽 엔티티가 서로를 참조하는 관계를 의미한다. 예를 들어, 회원(Member)이 하나의 팀(Team)에 속해 있다고 가정할 때, 단방향 관계에서는 Member가 Team을 참조하는 구조였다. 이제 팀도 해당 팀에 속한 회원들을 참조하도록 설정하여 양방향 관계를 만들어 보자.회원-팀: 다대일(N:1) 관계 / 회원 → 팀 (Member.team)팀-회원: 일대다(1:N) 관계 / 팀 → 회원 (Team.members)@Entitypublic class Member { @Id @Column(name = "MEMBER_ID") private .. DB/JPA 2024. 11. 13. [📗자바 ORM 표준 JPA 프로그래밍] 단방향 연관관계 매핑하기 엔티티 간 연관관계 개요엔티티들은 다른 엔티티와 연관관계를 갖는 경우가 많다. 예를 들어, 주문 엔티티는 상품 엔티티와 연관되고, 상품 엔티티는 또 다른 엔티티(카테고리, 재고 등)와 연관될 수 있다.객체는 참조를 사용해 관계를 맺는 반면, 데이터베이스는 외래 키를 사용해 관계를 설정한다. 이러한 차이로 인해 ORM에서 객체 간의 연관관계를 테이블 연관관계에 매핑하는 작업이 필요하며, 이를 적절히 이해하는 것이 중요하다.주요 개념방향 (Direction): 단방향과 양방향으로 구분된다.단방향: 엔티티가 하나의 방향으로만 다른 엔티티를 참조한다. 예를 들어, 회원 → 팀의 관계가 단방향 관계다.양방향: 양쪽 엔티티가 서로 참조한다. 회원 ↔ 팀의 관계가 양방향 관계이며, 양방향 관계에서는 양쪽에 참조 필드.. DB/JPA 2024. 11. 12. [📗자바 ORM 표준 JPA 프로그래밍] JPA의 기본 어노테이션과 테이블 매핑 @Entity - JPA 관리 대상 지정@Entity는 JPA를 사용해 특정 클래스가 데이터베이스의 테이블과 매핑되도록 지정하는 어노테이션이다. 이 어노테이션이 붙은 클래스는 JPA가 관리하며, 이를 엔티티라 부른다.@Entitypublic class Member { @Id private Long id; private String name;}속성name: JPA에서 사용할 엔티티 이름을 지정한다. 기본적으로 클래스 이름을 사용하지만, 패키지에 이름이 같은 엔티티 클래스가 있을 경우 이름을 지정하여 충돌을 방지할 수 있다.주의사항기본 생성자 필수: 엔티티 클래스는 protected나 public 기본 생성자를 반드시 가져야 한다. JPA가 엔티티를 인스턴스화할 때 기본 생성자를 사용하기 때.. DB/JPA 2024. 11. 11. [📗자바 ORM 표준 JPA 프로그래밍] 엔티티 매니저와 영속성 컨텍스트, 엔티티의 생명 주기 JPA의 엔티티 매니저(EntityManager)JPA에서 엔티티 매니저(EntityManager)는 엔티티의 저장, 수정, 삭제, 조회 등 엔티티와 관련된 모든 작업을 관리하는 관리자 역할을 한다. 애플리케이션에서 JPA를 사용할 때, 엔티티 매니저가 제공하는 메서드를 통해 데이터베이스와의 상호작용을 쉽게 할 수 있다.엔티티 매니저는 엔티티 매니저 팩토리를 통해 생성할 수 있으며, 엔티티 매니저 팩토리는 여러 스레드에서 안전하게 공유할 수 있다.하지만 엔티티 매니저는 스레드 안전하지 않기 때문에 요청마다 새로운 인스턴스를 사용해야 한다. 하나의 엔티티 매니저를 여러 스레드에서 동시에 사용하면 동시성 문제가 발생할 수 있다.// 엔티티 매니저 팩토리로부터 엔티티 매니저 생성EntityManagerFact.. DB/JPA 2024. 11. 10. 이전 1 다음