QueryDSL 관련 질문입니다.
411
작성한 질문수 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이 동작하였습니다.
정처기 2026-3 실기 문의
0
38
2
정처기 실기 3회 컴싸 사용 여부
0
31
1
자바 킴쌤 클래스 기초part2.pdf파일은 어디서 받을 수 있나요?
0
12
0
오타 제보 드립니다.
0
20
1
모의고사 1 회 2번문제 중
0
35
2
26-2 이론문제 재탕
1
30
1
26-2년도 코드문제
0
21
0
26-2 코드문제
0
22
1
15분 48초 질문
0
27
2
26-1년도 이론문제 재탕
0
42
1
26-1년도 코드문제 재탕
0
28
0
이론재탕만 눈치챘어도
0
52
1
25-3년도 이론문제 재탕
0
36
1
25-3년도 코드문제 재탕
0
28
0
출력값 문의
0
30
2
25-2 분기커버리지
0
32
0
25-2 이론 재탕
0
42
1
25-1 이론 재탕
0
33
1
Jib 빌드가 83%에서 멈추는 문제 해결(windows 사용자)
1
33
1
런타임 에러
0
29
0
서브넷 마스크
0
48
2
모의고사 1회 계산문제 2개 맞았는데
0
63
2
서비스에서와 컨트롤러의 @Vaild 적용 차이에 대해서
0
48
2
업캐스팅 문제 예시 4번 부모 호출
0
48
2





