inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

QueryDSL 관련 질문입니다.

390

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

10

1

47번 리턴 관련 질문

0

15

1

실무 내용 문의드려요

0

23

2

IO활용-회원관리예제1 샘플코드 문의

0

15

1

join에대해 질문드립니다.

0

19

1

pg사가 있다고 가정하면

0

25

1

중급 1편 학습 방향에 대해 조언 부탁드립니다

0

32

1

To-Do App

0

27

1

강의노트 접속 불가

0

27

2

Kafka Cluster 구성도 질문

0

23

1

SingletonService가 JVM이 뜰 때 생성되는게 맞나요?

0

33

2

26년 1회차 기출 강의

0

52

2

임포트 오류

0

34

2

기출문제

0

55

1

정보처리기사 실기 zip

0

44

2

답을언제쯤받아볼수있나요

0

49

2

데이터베이스 노션

0

38

2

형 책 어떻게 받아?

1

59

1

PPT 자료 공유 받을 수 있을까요?

0

32

1

@JsonIgnore 이후 Internal Server Error가 발생하지 않습니다.

0

33

2

수업노선자료파일 다운

0

34

2

5~9까지 램덤숫자출력

0

33

1

mvc 패턴 - 적용 강의에서 회원가입할 때 redirect가 아닌 forward인 이유가 궁금합니다.

0

29

1

프로젝트가 없어요..

0

56

2