JPA/JPA 오류 해결

스프링 데이터 JPA 페이징과 정렬 중 sort 오류

존태 2022. 2. 19. 22:45

오류 장면 !!

JPA 스프링 데이터을 이용하여 

Page 인터페이스

public interface Page extends Slice {

int getTotalPages(); //전체 페이지 수

long getTotalElements();

//전체 데이터 수 <U>Page<U> map(Function<? super T. extends U> converter); //변환기 }

 

을 이용하여 페이징을 하고 있었다.

 

게시판 번호 순서대로 내림차순 하고 싶어

@Override
public Page<Bbs> bbsList(Pageable pageable){
    int page = (pageable.getPageNumber() == 0) ? 0 : (pageable.getPageNumber() - 1);
    pageable = PageRequest.of(page, 10,Sort.by(Sort.Direction.DESC,"bbs_No"));

    return bbsRepository.findAll(pageable);
}

 

처럼 코드를 작성하고 실행했는데 위 사진 처럼 자꾸 property가 없다는 오류가 발생했다.

 

김영한님께서 쓰신 JPA책도 찾아보고 구글링도 해봤지만 해결하지 못했다.

 

계속 해보다가 이상한점을 발견했는데 오류 메시지를 보면 _(언더스코어)뒤로 인식을 못하는 현상을 발견했다.

 

@Entity
@Getter
@Setter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
public class Bbs {
        @Id
        @GeneratedValue
        @Column(name = "BBS_NO")
        private Long bbsNo;
        private String bbsTitle;
        private String bbsContent;
        private String bbsDate;
        private Integer bbsHit;
        private String bbsNotice;
        private String bbsSecret;
        @ManyToOne(fetch = FetchType.LAZY)
        @JoinColumn(name = "MEMBER_ID")
        private Member member;

Bbs Entity

@Override
public Page<Bbs> bbsList(Pageable pageable){
    int page = (pageable.getPageNumber() == 0) ? 0 : (pageable.getPageNumber() - 1);
    pageable = PageRequest.of(page, 10,Sort.by(Sort.Direction.DESC,"bbsNo"));

    return bbsRepository.findAll(pageable);
}

BbsServiceImpl

 

처럼 _(언더스코어)를 빼준 앤티티 네이밍을 하니 오류 없이 정상적으로 동작하였다.

 

결론.. Entity 설계할때 필드에 _(언더스코어)가 들어간 네이밍은 하지말자...