본문 바로가기
728x90

데이터 JPA6

스프링 데이터 jpa 사용자 정의 ID를 사용하는경우 @GeneratedValue 를 사용하지 않는경우 사용자 정의 id를 사용하는경우 스프링데이터 jpa에서는 save() 작업을 하는경우 merge가 발생하므로 따로 설정해줘야한다. Persisteable 인터페이스를 구현해야한다. package com.study.datajpa.entity; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.springframework.data.annotation.CreatedDate; import org.springframework.data.domain.Persistable; import org.springframework.data.jpa.domain.support.AuditingEntityLi.. 2021. 10. 24.
스프링 데이터 jpa 사용자 정의 repository 구현 사용자 정의 인터페이스 구현 package com.study.datajpa.repository; import com.study.datajpa.entity.Member; import java.util.List; public interface MemberRepositoryCustom { List findMemberCustom(); } 사용자 정의 인터페이스 구현체 상속해줄려는 스프링 데이터 jpa 인터페이스명 + "Impl", 부모 인터페이스 명은 상관없음, 구현체명이 중요! package com.study.datajpa.repository; import com.study.datajpa.entity.Member; import lombok.RequiredArgsConstructor; import javax.p.. 2021. 10. 23.
스프링 데이터 jpa 패치조인 @EntityGraph 인터페이스 XToOne 연관관계 일때 FetchType.Lazy 설정으로 바꾸고 스프링 데이터 jpa에서 패치조인 @Query("select m from Member m left join fetch m.team") List findMemberFetchJoin(); @Override @EntityGraph(attributePaths = {"team"}) List findAll(); // jpql에 적용 @EntityGraph(attributePaths = {"team"}) @Query("select m from Member m") List findMemberEntityGraph(); @EntityGraph(attributePaths = ("team")) List findEntityGraphByUsernam.. 2021. 10. 23.
스프링 데이터 jpa 벌크 쿼리 인터페이스 package com.study.datajpa.repository; import com.study.datajpa.dto.MemberDto; import com.study.datajpa.entity.Member; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Slice; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.spr.. 2021. 10. 23.
스프링 data jpa 페이징 인터페이스 구현 import com.study.datajpa.dto.MemberDto; import com.study.datajpa.entity.Member; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Slice; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Para.. 2021. 10. 23.
스프링 데이터 JPA 복잡한 정적 쿼리 @Query @Query 어노테이션 사용 장점 : 컴파일시 문법오류 체크 package com.study.datajpa.repository; import com.study.datajpa.entity.Member; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import java.util.List; public interface MemberRepository extends JpaRepository { List findByUsername(String userna.. 2021. 10. 22.
728x90