본문 바로가기
반응형

[개발] 프레임워크/QueryDSL3

[QueryDSL] LocalDateTime, LocalDate 파라미터 바인딩 시 'MM/dd/yyyy HH:mm:ss' 로 표시될 때 해결 방법 트러블 슈팅MyBatis 코드를 JPA + QueryDSL로 이관하는 작업을 하고 있습니다. MySQL 컬럼 중 date, datetime을 LocalDate, LocalDateTime으로 매핑하고 개발을 진행하던 중 QueryDSL에서 where(), set() 등에서 LocalDate, LocalDateTime 객체를 파라미터로 넣어서 처리를 하고 있습니다. 문제는 하이버네이트의 바인딩 쿼리를 봤을 때 날짜 형식 문자열이 'MM/dd/yyyy HH:mm:ss'로 표시가 되는 것을 확인했습니다. 이 문자열 형식은 timestamp 컬럼의 경우 정상적으로 동작을 하지만, date, datetime의 경우 처리가 되지 않는 문제가 있습니다. 원하는 형식 문자열은 'yyyy-MM-dd HH:mm:ss' 입니.. 2024. 12. 14.
[QueryDSL] projection으로 테이블 조인 결과 데이터 매핑하기 MyBatis 코드를 QueryDSL로 이관하는 작업 중에 여러 개의 테이블의 조인되어 있는 결과를 반환하는 매핑 클래스를 만들어야 했습니다. QueryDSL의 경우 projection이라고 해서 SELECT 절의 조회 대상을 지정하는 방법이 있었습니다. projection 용 record 타입의 dto를 하나 만들어 결과를 매핑하여 처리를 하였는데요. 그 코드를 한 번 소개하려고 합니다.   ProjectionProjection은 프로그래밍 및 데이터베이스 분야에서 전체 데이터 중 일부만 선택해 가져오는 작업을 말합니다. 주로 QueryDSL, JPA, SQL 등에서 사용되며, 필요한 데이터만 선택적으로 추출하여 효율적인 데이터 전송 및 처리를 가능하게 합니다. Projection 사용 시 주의 사항 .. 2024. 12. 3.
QueryDSL 셋팅 시 발생하는 에러 개선 프로젝트 스펙은 다음과 같았습니다.jdk 17spring boot 2.7.18 QueryDSL 의존성은 다음과 같이 추가했습니다.implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"annotationProcessor "jakarta.annotation:jakarta.annotation-api"annotationProcessor "jakarta.persistence:jakarta.persistence-api" 이 상황에서 빌드를 수행하니 다음과 같은 에러가 발생했습니다.Execution failed for task ':compileJava'. > ja.. 2024. 11. 14.
반응형