본문 바로가기

자바 ORM 표준 JPA 프로그래밍51

사용자 정의 Repository 사용자 정의 Repository 사용법 사용자 정의 인터페이스 작성 사용자 정의 인터페이스 구현 스프링 데이터 Repository에 사용자 정의 인터페이스 상속 Reference 자바 ORM 표준 JPA 프로그래밍 QueryDSL 2021. 6. 19.
페이징 활용 2 - CountQuery 최적화 PageableExecutionUtils.getPage()로 최적화 스프링 데이터 라이브러리가 제공 count 쿼리가 생략 가능한 경우 생략해서 처리 페이지 시작이면서 컨텐츠 사이즈가 페이지 사이즈보다 작을 때 마지막 페이지 일 때 (offset + 컨텐츠 사이즈를 더해서 전체 사이즈를 구한다) Reference 자바 ORM 표준 JPA 프로그래밍 QueryDSL 2021. 6. 18.
페이징 활용 1 - Querydsl 페이징 연동 스프링 데이터의 Page, Pageable을 활용 전체 카운트를 한번에 조회하는 단순한 방법 데이터 내용과 전체 카운트를 별도로 조회하는 방법 사용자 정의 인터페이스에 페이징 2가지 추가 전체 카운트를 한번에 조회하는 단순한 방법 searchPageSimple(), fetchResults() 사용 Querydsl이 제공하는 fetchResults()를 사용하면 내용과 전체 카운트를 한번에 조회할 수 있다. (실제 쿼리는 2번 호출) fetchResults()는 카운트 쿼리 실행 시 필요없는 order by는 제거한다. 데이터 내용과 전체 카운트를 별도로 조회하는 방법 searchPageComplex() 전체 카운트를 조회하는 방법을 최적화 할 수 있으면 이렇게 분리하면 된다. (예를 들어서 전체 카운트를.. 2021. 6. 17.
SQL function 호출하기 SQL function은 JPA와 같이 Dialect에 등록된 내용만 호출할 수 있다. member -> M으로 변경하는 replace 함수 사용 소문자로 변경해서 비교해라. lower 같은 ansi 표준 함수들은 querydsl이 상당부분 내장하고 있다. Reference 자바 ORM 표준 JPA 프로그래밍 QueryDSL 2021. 6. 16.
수정, 삭제 벌크연산 쿼리 한번으로 대량 데이터 수정 기존 숫자에 1 더하기 곱하기 : multiply(x) 쿼리 한번으로 대량 데이터 삭제 주의 : JPQL 배치와 마찬가지로, 영속성 컨텍스트에 있는 엔티티를 무시하고 실행되기 때문에 배치 쿼리를 실행하고 나면 영속성 컨텍스트를 초기화 하는 것이 안전하다. Reference 자바 ORM 표준 JPA 프로그래밍 QueryDSL 2021. 6. 15.
동적 쿼리 - Where 다중 파라미터 사용 where 조건에 null 값은 무시된다. 메서드를 다른 쿼리에서도 재활용 할 수 있다. 쿼리 자체의 가독성이 높아진다. null 체크는 주의해서 처리해야 한다. Reference 자바 ORM 표준 JPA 프로그래밍 QueryDSL 2021. 6. 14.