JPA 4

JPA 에서 준영속 상태란? 실무에서 왜 중요할까?

JPA를 사용하다 보면 "준영속 상태"라는 개념을 접하게된다. 처음엔 어렵게 느껴지지만, 실무에서 엔티티를 수정할 때 꼭 이해하고 넘어가야 할 개념이다. 이번 글에서는 준영속 상태가 무엇인지, 왜 중요한지, 그리고 실무에서는 어떻게 다뤄야 하는지 알아보자.엔티티란?JPA 에서 Entity 는 데이터베이스 테이블에 매핑되는 자바 클래스를 의미한다.@Entity, @Id 애노테이션을 통해 정의하며, 하나의 객체 인스턴스는 테이블의 한 row를 의미한다.@Entitypublic class Book { @Id private Long id; private String name; private int price; // 기타 필드 및 getter/setter 생략} 특징엔티티는 Enitit..

JPA 2025.05.08

공통 인터페이스 기능

순수 JPA 기반 리포지토리 만들기 순수한 JPA 기반 레파지토리를 만들기기본 CRUD저장변경 -> 변경감지 사용 삭제 전체 조회단건 조회 카운트 참고 : JPA 에서 수정은 변경감지 기능을 사용하면 된다.트랜잭션 안에서 엔티티를 조회한 다음에 데이터를 변경하면 , 트랜잭션 종료 시점에 변경 감지 기능이 작동해서 변경된 엔티티를 감지하고 update sql 을 실행한다. 순수 JPA 기반 리포지토리 - 회원package study.data_jpa.repository;import jakarta.persistence.EntityManager;import jakarta.persistence.PersistenceContext;import jakarta.persistence.TypedQuery;import org..

JPA 2024.12.07

양방향 연관관계와 연관관계 주인

DB 설계 원칙하나의 컬럼의 하나의 원소만 들어가야 한다. 1: N 관계의 특징N 쪽의 테이블에 FK 가 들어가야 한다. N:M 관계의 특징중간 테이블이 있어야한다.중간 테이블에서 두 테이블의 FK 가 들어가야 한다.N:M 관계에서 중간 테이블을 추가해 1: N 관계로 바꾸어 표현한다. 연관관계의 주인 (Owner)양방향 매핑 규칙객체의 두 관계 중 하나를 연관관계의 주인으로 지정연관관계의 주인만이 외래키를 관리 (등록, 수정)주인이 아닌 쪽은 읽기만 가능 주인은 mappedBy 속성 사용 X주인이 아니면 mappedBy 속성으로 주인 지정외래키가 있는 곳은 Many 인 특징이 있다.즉 다 쪽이 무조건 연관관계의 주인이 된다.import jakarta.persistence.*;import lombo..

JPA 2024.12.05

[JPA] 영속성 컨텍스트

jpa 란?JPA 저장멤버객체를 만든다고 가정해보자멤버 객체를 회원 DAO 에 넘기고 회원 DAO 가 JPA 에게 멤버 회원 객체를 저장해줘 라고 던지기만 하면 JPA 가 자동으로 JPA 가 회원 객체를 분석하고 자동으로 INSERT SQL 을 만들어줘도 JDBC API 를 사용해서 db 에 insert 쿼리를 날려준다.또한 패러다임의 불일치도 해결해준다.자바 컬렉션의 저장하듯 한줄의 코드로 JPA 에게 회원을 저장시킬 수 있다. 이때 회원과 같은 객체를 JPA 에서 엔티티라 부른다. 엔티티란? DB 테이블에 대응하는 하나의 클래스라 생각하면 된다. JPA 조회 조회또한 마찬가지로 JPA 가 다 알아서 해준다. EnityObject 를 잘 만들어서 결과로 돌려준다. jpa 에서 가장 중요한 두가지가 있..

JPA 2024.11.16