본문 바로가기

Spring52

메세지, 국제화 [메세지 개요] HTML, JSP 파일 등에 메세지가 하드코딩 되어있다면? 상품명 예를들어 고객사, 기획자 등 모든 상품명을 상품이름으로 수정을 요청한다면? 상품이름 상품명으로 되어있는 HTML을 모두 찾아 상품이름으로 변경해야 한다. 규모가 작은 프로젝트라면 문제가 되지 않겠지만 큰 프로젝트라면 관리가 힘들어질 것이다. 이런 다양한 메세지를 한 곳에서 관리하도록 하는 기능을 메세지 기능이라 한다. [Spring MessageSource 설정] @Bean public MessageSource messageSource(){ ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); messageSource.setBasenam.. 2022. 4. 27.
사용자 정의 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.