QueryDSL 관련 질문입니다.
403
작성한 질문수 3
@Getter
@Setter
@Entity
@SuperBuilder
@AllArgsConstructor
@Table(name = "member")
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Member extends BaseUpdateEntity {
@Id
@GeneratedValue(generator = "uuid2")
private UUID id;
private String email;
private String password;
@Column(columnDefinition = "INT")
@Enumerated(value = EnumType.ORDINAL)
private MemberStatus memberStatus;
}
@Getter
@Setter
@SuperBuilder
@MappedSuperclass
@NoArgsConstructor
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseUpdateEntity extends BaseEntity {
@LastModifiedDate
private LocalDateTime updatedAt;
@LastModifiedBy
private String updatedBy;
}
@Getter
@Setter
@SuperBuilder
@MappedSuperclass
@NoArgsConstructor
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseEntity {
@CreatedDate
@Column(updatable = false)
private LocalDateTime createdAt;
@CreatedBy
@Column(updatable = false)
private String createdBy;
}
public Page<AuthInfoDto> searchList(AuthSearchRequestDto requestDto) {
JPAQuery<AuthInfoDto> query = queryFactory.select(Projections.fields(
AuthInfoDto.class,
member.email,
member.memberStatus.as("status"),
member.createdAt
)).from(member)
.where(searchCondition(requestDto)); // 검색 조건 설정
long totalCount = query.fetchCount();
List<AuthInfoDto> authInfoList = this.getQuerydsl().applyPagination(requestDto.getPageable(), query).fetch();
return new PageImpl<>(authInfoList, requestDto.getPageable(), totalCount);
}사용자 정보를 Pagination해서 출력하게끔 하려고 합니다.
문제가 되는 부분은
List<AuthInfoDto> authInfoList = this.getQuerydsl().applyPagination(requestDto.getPageable(), query).fetch();해당 코드 부분인데 단순히 query.fetch()를 해서 List를 추출하는 것은 되지만 Pagination을 적용하고자 하면 에러가 납니다.
org.hibernate.query.SemanticException: Could not interpret path expression 'member.createdAt'에러 내용은 위와 같습니다.
QueryDSL 관련 gradle 정보도 같이 첨부합니다.
// QueryDSL
implementation 'com.querydsl:querydsl-core:5.0.0'
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
implementation 'com.querydsl:querydsl-apt:5.0.0:jakarta'
implementation 'jakarta.annotation:jakarta.annotation-api'
implementation 'jakarta.persistence:jakarta.persistence-api'
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"혹시 뭐가 문제일까요?? 도와주세요.
답변 1
0
@Table(name = "member")로 인하여 QMember의 명칭이 member1으로 등록이 되어
사용자의 Pagination 규칙을 적용하려고 할때 member.createdAt으로 들어가서
Query 상으로 Table 명을 못찾아서 나온 문제였습니다.
해당 Member Class를 Members로 수정하고 Table name도 동일하게 수정하여 정상적으로 QueryDSL이 동작하였습니다.
26년2회 실기기출은 언제쯤...
0
27
2
진짜화면이랑달라서못해먹겟어요먹겟어요
0
18
1
네이버 API | '검색 - 책' API 제공 중단
0
20
2
ArticleReadService 관련 질문
0
15
1
kafka 이벤트 발행 실패 시 at-least-once를 보장하는 방법이 궁금합니다.
1
46
1
이론 공부법 요약본 버전 업데이트 문의
0
24
2
domain에 @Entity 와 Repository를 함께 둔 이유가 궁금합니다
1
32
1
해당 프로젝트를 똑같이 따라하려니 spring installer가 버전이 17부터 가능하네요.
0
18
1
Part 2 듣기전 복습하던 중, 아키텍처에 관한 질문이 있습니다.
0
35
2
장치 의존성과 CSR
0
30
1
테스트는 인터페이스를 대상으로 만드는것에 대해 궁금한 점이 있습니다.
0
22
1
[영한님]Spring Boot 및 프로젝트 생성
0
48
2
Jib 이미지 빌드에서 docker credential 관련으로 이슈가 있다면
1
60
1
리뉴얼 시기
0
39
2
스크립트에 대해 질문 있습니다.
1
54
1
같은 사용자가 연속된 중복 호출할 경우 어떻게 되는지 궁금합니다!
2
61
1
조건 검색 질문
0
32
1
JPA 엔티티로 만들었다고 기술종속이 아닌지에 대한 질문
0
53
3
강의 요청 문의
0
39
2
클로드코드 명령어-대화&세션관리 수업 자료
0
40
1
콘솔 로그가 깨져나오는데 혹시 방법이 있을까요?
0
50
2
정처기 필기 준비할때 이 이론을 다시 외워도 될까요?
0
55
2
PlatformTransactionManager, ResourcelessTransactionManager 질문
1
59
2
자료 한번에 다운받기
0
30
1





