본문 바로가기
반응형

JPA4

JPA - 영속 상태와 준영속 상태의 차이 및 준영속 상태 만드는 방법 📌 목차 1. 영속(Persistent) 상태란? 2. 준영속(Detached) 상태란? 3. 영속 상태와 준영속 상태의 차이 4. 준영속 상태 만드는 방법 5. 준영속 상태의 활용 예시 6. 정리 ">📌 목차1. 영속(Persistent) 상태란? 2. 준영속(Detached) 상태란? 3. 영속 상태와 준영속 상태의 차이 4. 준영속 상태 만드는 방법 5. 준영속 상태의 활용 예시 6. 정리 1. 영속(Persistent) 상태란?">1. 영속(Persistent) 상태란?**영속 상태(Persistent State)**란, JPA의 영속성 컨텍스트에 의해 관리되는 엔티티 객체 상태를 의미한다.즉, 엔티티가 EntityManager의 관리 하에 있으며, 변경 사항이 자동으로 DB에 반영되는 상태이.. 2025. 2. 12.
JPA - flush()란? flush()는 영속성 컨텍스트의 변경 사항(INSERT, UPDATE, DELETE 등)을 즉시 데이터베이스에 반영하는 동작을 의미한다.즉, 쓰기 지연 SQL 저장소(Batch SQL Storage)에 쌓인 SQL을 강제로 실행하여 DB에 반영하는 기능이다. 📌 목차 1. JPA의 flush()란? 2. JPA의 자동 Flush 시점 3. flush()와 clear() 차이 4. flush() 모드 설정 5. flush() 활용 예시 6. 정리 ">📌 목차1. JPA의 flush()란? 2. JPA의 자동 Flush 시점 3. flush()와 clear() 차이 4. flush() 모드 설정 5. flush() 활용 예시 6. 정리 1. JPA의 flush()란? ">1. JPA의 flush()란.. 2025. 2. 12.
JPA - 영속성 컨텍스트 (Persistence Context) 특징 영속성 컨텍스트(Persistence Context)는 JPA에서 엔티티 객체를 관리하는 공간(1차 캐시)으로, 엔티티의 상태를 추적하고 변경 사항을 자동으로 데이터베이스에 반영하는 역할을 한다.JPA의 핵심 개념 중 하나이며, EntityManager에 의해 관리된다. 영속성 컨텍스트의 주요 특징① 엔티티 생명주기 관리영속성 컨텍스트는 엔티티 객체를 다음과 같은 4가지 상태로 관리한다.상태설명 비영속 (New, Transient) 영속성 컨텍스트에 관리되지 않는 객체 (DB와 연결 X)영속 (Managed, Persistent)영속성 컨텍스트에 의해 관리되는 객체 (변경 감지 O)준영속 (Detached)영속성 컨텍스트에서 분리된 객체 (변경 감지 X)삭제 (Removed)삭제가 예약된 상태 (DB에서.. 2025. 2. 11.
JPA - 특정 FK(외래 키)에 대한 엔티티 리스트 업데이트 문제 해결 (OptimisticLockException) 요구사항JPA에서 특정 FK(외래 키)에 대한 엔티티 리스트를 업데이트할 때, 다음과 같은 로직이 필요하다.요청으로 받은 리스트의 엔티티들은 업데이트 또는 신규 추가되어야 함.기존 DB에는 있지만 요청 리스트에는 없는 엔티티들은 삭제되어야 함.문제 코드 (예시)public void updateEntityList(Long parentId, List childDtoList){ long result = childRepository.deleteByParentId(parentId); if(result > 0){ childDtoList.stream().forEach(childDto -> childRepository.save(childMapper.to.. 2025. 2. 7.
반응형