BackEnd/JPA 5

[JPA] JPA의 다양한 연관관계 매핑 (다대일, 일대다, 일대일, 다대다)

엔티티의 연관관계를 매핑할 때, 다중성, 단방향/양방향, 그리고 연관관계의 주인을 고려해야 합니다.이를 바탕으로 모든 연관관계 유형을 정리하겠습니다. 01 다대일 (Many-to-One)1. 다대일 단방향 [N:1]다수의 엔티티가 하나의 엔티티와 연관되는 관계입니다.단방향으로 설정하면 하나의 엔티티에서만 참조할 수 있습니다.여러 회원이 하나의 팀에 소속된 상황을 예로 들 수 있습니다.@Entitypublic class Member { @ManyToOne @JoinColumn(name = "team_id") // 외래 키 컬럼 private Team team;}@Entitypublic class Team { @Id private Long id; private String n..

BackEnd/JPA 2025.02.02

[JPA] JPA 엔티티 기본 매핑 어노테이션 완벽 정리

01 엔티티 매핑이란?JPA에서 엔티티는 데이터베이스 테이블과 매핑되는 객체입니다.엔티티 매핑은 객체 중심의 프로그래밍과 관계형 데이터베이스의 데이터를 연결하는 핵심 요소로, 객체와 테이블 간의 매핑을 설정해줍니다.이를 통해 개발자는 SQL을 직접 작성하지 않고도 객체를 통해 데이터베이스를 다룰 수 있습니다.이번 글에서는 기본적인 매핑 어노테이션을 정리해보겠습니다.02 @Entity와 @Table1. @Entity@Entity는 JPA에서 엔티티 클래스를 정의하는 데 사용됩니다. 이 어노테이션이 선언된 클래스는 데이터베이스 테이블과 매핑됩니다.속성name : JPA에서 사용할 엔티티 이름을 지정합니다. 기본값은 클래스 이름과 동일합니다.주의사항기본 생성자가 반드시 필요합니다.final, enum, int..

BackEnd/JPA 2024.12.20

[JPA]JPA와 영속성 컨텍스트

JPA는 객체와 데이터베이스 사이에서 데이터를 효율적으로 관리해주는 기술입니다.이때 핵심 역할을 하는 것이 영속성 컨텍스트입니다.영속성 컨텍스트는 엔티티를 저장하고 관리하는 메모리 공간으로, 객체의 상태를 추적하고 데이터베이스와의 동기화를 돕습니다.이 글에서는 영속성 컨텍스트의 개념과 엔티티의 생명주기, 그리고 1차 캐시, 변경 감지, 쓰기 지연 등 주요 특징을 정리해보겠습니다.01 엔티티 매니저 팩토리와 엔티티 매니저지난번 JPA를 시작하며 엔티티 매니저 팩토리를 통해 엔티티 매니저를 생성하는 과정을 거쳤습니다.//엔티티 매니저 팩토리 생성EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpabook");//엔티티 매니저 생성Ent..

BackEnd/JPA 2024.12.17

[JPA] SpringBoot + JPA 시작하기

JPA는 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스입니다.즉, 구현을 하기 위해서는 라이브러리를 선택해야 하는 것입니다.일반적으로 JPA에서는 Hibernate를 구현체로 선택하는 경우가 많습니다.그러나 반드시 Hibernate를 사용할 필요는 없습니다!!01 의존성 주입하기스프링 프로젝트에 JPA를 적용하기 위해서는 의존성 주입이 필요합니다.MVN Repository에서 Spring boot starter data jpa와 Mysql connector를 가져옵니다.1. Spring Data JPA스프링부트 버전에 맞추어 자동으로 JPA 관련 라이브러리들의 버전을 관리해주는 라이브러리입니다. org.springframework.boot sprin..

BackEnd/JPA 2024.12.13

[JPA] JPA를 배워야 하는 이유는? SQL Mapper vs ORM

스프링으로 개발을 시작할 때 처음에는 새로고침하거나 프로그램을 다시 실행하면데이터가 사라지는 사이트를 만들어본 경험이 있을 것입니다.이 문제를 해결하기 위해 프로그램과 데이터베이스를 연결해야 합니다. 저는 처음 DB를 학습할 때 SQL 쿼리 작성 방법을 배우고MyBatis를 통해 MySQL과 연결하는 방법으로 프로그램을 만들었습니다.이때 사용한 MyBatis와 같은 기술을 Persistence Framework라고 합니다.오늘은 Persistence Framework의 종류를 정리하고 비교해보려고 합니다. 1. Persistence Framework란?어떤 종류가 있는지 알아보기에 앞서 Persistence Framework가 무엇인지 정리해봅시다.Persistence = 영속성프로그램이 종료되더라도 사..

BackEnd/JPA 2024.12.10