inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

QueryDSL 관련 질문입니다.

386

hackey1318

작성한 질문수 3

0

@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"

혹시 뭐가 문제일까요?? 도와주세요.

querydsl java spring gradle

답변 1

0

hackey1318

@Table(name = "member")로 인하여 QMember의 명칭이 member1으로 등록이 되어

사용자의 Pagination 규칙을 적용하려고 할때 member.createdAt으로 들어가서

Query 상으로 Table 명을 못찾아서 나온 문제였습니다.

 

해당 Member Class를 Members로 수정하고 Table name도 동일하게 수정하여 정상적으로 QueryDSL이 동작하였습니다.

갑자기 채점 사이트가 바뀌었어요

0

11

1

코드 자료

0

10

2

문제 리스트 페이지

0

18

1

part8 Notion 링크

0

14

1

채점 사이트 관련 질문드립니다

0

17

1

인텔리제이 MCP 서버 설정 관련

0

17

1

조회속도 개선에서 더 개선하는 방법이 궁금합니다.

0

23

2

필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)

0

33

2

servlet과 container에 대한 질문입니다

0

22

1

질문있습니다

0

24

1

1번 문제 질문입니다.

0

29

1

26년 1회 실기 해설 강의

0

48

2

음악플레이어 문제 중 코드질문

0

24

1

잠겨버린 사물함 시간초과 관련 질문입니다.

0

24

1

RepositoryTest의 패키지 위치가 domain인 이유

0

29

2

도메인 모델에서 관계와 규칙을 구분하는 방법

0

37

2

프로젝트 질문 문의

0

45

1

UserService, CertificationService 책임 분리 기준 질문

0

25

1

문제와 풀이4 문제점

0

40

2

DDD 는 마이바티스와 잘 맞지 않는건가요?

0

45

1

스프링부트 버전 문의드립니다.

0

38

1

53번 4-1 자료 오류 있는 것 같습니다.

0

67

2

spring initialiser 어떤걸 선택해야될지 모르겠어요

0

31

2

최근 코테, 과제 테스트 트렌드

0

65

2