Spring JPA 영속성 컨텍스트(EntityManager)
·
Spring Data JPA
이번 포스트에서는 Spring Data JPA의 영속성에 대해서 알아보자 1. 영속성이란? JPA의 영속성(Persistence)은 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성을 의미한다. 여기서 말하는 데이터는 주로 데이터베이스에 저장되는 데이터를 말한다. JPA에서는 이 영속성을 다루기 위해 여러 개념과 기능을 제공하는데, 그 중에서 가장 중요한 것이 '엔티티의 생명주기'와 '영속성 컨텍스트'이다. 2. 엔티티의 생명주기 JPA에서 엔티티는 특정한 생명주기를 가지며, 이 생명주기는 엔티티의 상태에 따라 변화한다. 엔티티의 상태는 크게 '비영속 (new/transient)', '영속 (managed)', '준영속 (detached)', '삭제 (removed)'의 4가지 ..
Spring JPA [SpringBoot3.1] - Querydsl 사용
·
Spring Data JPA
이전 포스팅에서 querydsl적용을 했고 이번에는 repository를 만들어서 사용해 보겠다. 1. QuerydslConfig라는 클래스를 만들고 JPAQueryFactory Bean설정을 해준다. import com.querydsl.jpa.impl.JPAQueryFactory; import jakarta.persistence.EntityManager; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration @RequiredArgsConstructor publi..
Spring JPA [SpringBoot3.x.x] - Querydsl 적용하고 빌드하기
·
Spring Data JPA
SpringBoot3버전에서 Querydsl을 적용하는법이 2버전과 다르게 변경되었다. 1. Build.gradle을 설정한다. 아래와 같이 querydsl설정을 해준다. QClass를 만들때는 스프링부트 2.x.x처럼 compileQuerydsl로 하는게 아니라 compileJava를 실행해서 진행한다.(그냥 빌드도됨) 이런 이슈는 gradle은 꾸준히 업그레이드 되고있지만 querydsl은 업데이트가 되지 않아서 그런것같다. plugins { id 'java' id 'org.springframework.boot' version '3.1.1' id 'io.spring.dependency-management' version '1.1.0' } group = 'com.jinan' version = '0.0...