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 설계할때 필드에 _(언더스코어)가 들어간 네이밍은 하지말자...