전체 글 (122) 썸네일형 리스트형 [JPA] JPA 실전 - 분석 스프링 데이터 JPA 구현체 분석스프링 데이터 JPA는 공통 인터페이스의 구현체로 SimpleJpaRepository를 제공합니다. 이 클래스는 기본적인 CRUD 연산을 포함한 다양한 메서드를 구현하고 있습니다. SimpleJpaRepository 클래스@Repository@Transactional(readOnly = true)public class SimpleJpaRepository implements JpaRepository { // ... other methods ... @Transactional public S save(S entity) { if (entityInformation.isNew(entity)) { em.persist(entity); .. [JPA] JPA 실전 - 확장 기능 사용자 정의 리포지토리 구현 스프링 데이터 JPA 리포지토리는 인터페이스만 정의하고 구현체는 스프링이 자동 생성스프링 데이터 JPA가 제공하는 인터페이스를 직접 구현하면 구현해야 하는 기능이 너무 많음다양한 이유로 인터페이스의 메서드를 직접 구현하고 싶다면?JPA 직접 사용( `EntityManager` ) 스프링 JDBC Template 사용 MyBatis 사용데이터베이스 커넥션 직접 사용 등등... Querydsl 사용 1. 사용자 정의 리포지토리 인터페이스 정의먼저, 사용자 정의 리포지토리 인터페이스를 정의합니다. 이 인터페이스는 추가하고자 하는 커스텀 메서드를 선언합니다.public interface MemberRepositoryCustom { List findCustomMembers();}.. [JPA] JPA 실전 - 쿼리 메소드 (3) 하이버네이트 6의 최적화 설명하이버네이트 6에서는 JPQL 쿼리에서 의미 없는 left join을 최적화하여 제거합니다. 의미 없는 left join이란, 조인된 테이블(team)이 select 절이나 where 절에서 전혀 사용되지 않는 경우를 말합니다. 이러한 경우 조인을 수행할 필요가 없으므로, 하이버네이트는 최적화를 통해 불필요한 조인을 제거합니다.@Query(value = "select m from Member m left join m.team t") Page findByAge(int age, Pageable pageable); 이 쿼리는 Member와 Team을 left join 하지만, team은 select 절이나 where 절에서 전혀 사용되지 않습니다. 따라서 하이버네이트는 le.. 이전 1 ··· 6 7 8 9 10 11 12 ··· 41 다음