Projection : Entity의 속성들중 일부 데이터만 가져오는 방법순수 JPA에서 DTO를 조회 할때는 아래 3가지 단점이 있다.JPA에서 DTO를 조회할 때는 new명령어를 사용DTO의 package 이름을 다 적어줘야함생성자 방식만 지원Querydsl에서
PA를 사용하여 도메인을 관계형 데이터베이스 테이블에 매핑할 때 공통적으로 도메인들이 가지고 있는 필드나 컬럼들이 존재 (생성일자, 수정일자, 식별자 같은 필드및 칼럼)JPA에서는 Audit이라는 기능을 제공하고 있습니다. Audit은 감시하다, 감사하다라는 뜻으로 S
Dirty란 상태의 변화가 생긴 정도Dirty Checking은 상태 변경 검사JPA에서는 트랜잭션이 끝나는 시점에 변화가 있는 모든 엔티티 객체를 데이터베이스에 자동으로 반영JPA에서는 엔티티를 조회하면 해당 엔티티의 조회 상태를 스냅샷을 만든다.트랜잭션이 끝나는 시
단방향 매핑이여도 테이블은 연관관계를 갖는다.양방향은 조회 로직이 추가된것.양방향 매핑을 할 때 JPA에 주인이 아닌Entity에 mappedBy를 사용아래 코드에 BOOK Entitiy에 @OneToMany(mappedBy = "book")를 달아주었다.연관관계의 주
Spring Data JPA 에서 fetch join 이용Querydsl 에서 fetch join 이용Entity 연관관계 구조BOOK_REVIEW와 USER_INFO가 ManyToOne관계BOOK_REVIEW와 BOOK이 ManyToOne관계BOOK을 조회하면 리뷰와
where 파라미터 적용전where 파라미터 적용 \* 조건을 재사용이 가능하다는 장점이 있다.
@Transactional 트랜잭션, 영속성 컨택스트 transaction begin, commit을자동 수행해준다 .JPA의 객체 변경감지는 transaction 이 commit될떄 , 작동된다 Spring은 @transactional 어노테이션을 선언한 메
스프링 데이터의 Page, Pageable을 활용하여 조회전체 카운트를 한번에 조회하는 방법과 데이터 내용과 전체 카운트를 별도로 조회 하는 방법을 작성RepositoryRepositoryCustomRepositoryImpl조회 쿼리와 카운트 커리 한번에 조회하는 방법
gradle 추가Spring Data Jpa Custom Repository 적용 Spring Data Jpa에서는 Custom Repository를 JpaRepository 상속 클래스에서 사용할 수 있도록 기능을 지원.Spring Data 공식 문서(https&#x
Spring Data Jpa에서 데이터가 존재하는지 확인 하기 위해 exists 쿼리를 사용한다.간단한 쿼리의 경우엔 아래와 같이 메소드로 쿼리를 만들어서 사용.복잡하게 되면 메소드명으로만 쿼리를 표현하기 어려운 단점이 있다.@Query를 이용한 exists단점은 JP
toOne 관계는 모두 join fetch로 가져온다.RepositoryService파라미터로 받은 Pageble은 인터페이스다. 따라서 실제 사용할 때는 해당 인터페이스를 구현한 org.springframework.data.domain.PageRequest 객체를 사
insert, update, delete할때 단건이 아닌 다건으로 한번에 처리하는 쿼리JPA에서 단건 UPDATE같은 경우에는 Dirty Checking을 통해서 수행벌크 연산 쿼리는 에ㅐㄴ티티 매니저가 영속성 컨텍스트에 변경된 내용을 업데이트 하지 않고 바로 데이터에
JPQL의 성능 튜닝을 위해 제공되는 조인연관된 엔티티 or 컬렉션을 SQL한번에 함께 조회하는 기능example회원과 팀이 N : 1 양방향 연관관계 매핑으로 동작한다.연관관계의 주인인 회원 엔티티에 @ManyToOne(fetch = FetchType.LAZY)을 통
@Entity가 붙은 클래스는 JPA가 관리한다.JPA를 사요해서 테이블과 매핑할 클래스는 @Entitiy필수주의 사항기본 생성자필수(파라미터가 없는 public 또는, prorected생성자)final 클래스, enum, interface, inner 클래스 사용 X
아래와 같은 구조를 가지고있으며, BOOK을 호출하여 그안에 USER_INFO와 BOOK_REVEIW를 사용하였을떄 N+1문제가 발생하였습니다.연관 관계 코드BOOKBOOK_REVIEUSER_INFOService여기서 서비스의 findBook()를 호출 하였다.쿼리 결
JPA순환참조 발생 > * 엔티티를 JSON으로 변환하는 도중에 에러가 발생 > * 양방향 연관관계 설정시 지연로딩으로 설정된 엔티티를 API에서 내려줄 때, Jackson이 데이터를 변환하다가 알 수 없는 타입이라는 에러가 발생. 엔티티 구조 구조 Bo
트랜잭션, 영속성 컨택스트데이터베이스 드라이버가 지원하면 DB에서 성능 향상transaction begin, commit을자동 수행해준다.JPA의 객체 변경감지는 transaction 이 commit될떄 , 작동된다Spring은 @transactional 어노테이션을
엔티티를 영구 저장하는 환경엔티티 매니저를 통해서 영속성 컨텍스트에 접근비영속(new/transient)영속성 컨텍스트와 전혀 관계가 없는 새로운 상태영속(managed)영속성 컨텍스트에 관리되는 상태준영속(detached)영속성 컨텍스트에 저장되었다가 분리된상태삭제(
즉시로딩객체 A를 조회할 때 A와 연관된 객체들을 한번에 가져오는것.지연로딩객체 A를 조회할 때는 A만 가져오고 여관된 데이터는 프락시 초기화 방법으로 가온다.연관관계의 주인을 정하는 기준연관관계의 주인은 외래 키의 우치를 기준으로 정해야함연관 관계 조회단방향 매핑만으