인프런 커뮤니티 질문&답변

지웅님의 프로필 이미지

작성한 질문수

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

32강. 반납 기능 개발하기

UserLoanHistoryRepository 에서 Cannot resolve property 'isReturn' 경고

23.06.03 04:10 작성

·

502

·

수정됨

1

package com.group.libraryapp.domain.user.loanhistory;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserLoanHistoryRepository extends JpaRepository<UserLoanHistory , Long> {
boolean existsByBookNameAndIsReturn(String bookName, boolean isReturn);
}

 

함수 existsByBookNameAndIsReturn 부분에서

IsReturn 부분이 Cannot resolve property 'isReturn' 이라는 경고문이 뜨는데요, 엔티티 매핑을 그대로 잘 해주었는데도 동일한 경고문이 뜹니다.

혹시 몰라서

@Column(name = "is_return", nullable = false)
private boolean isReturn;

를 추가해주었지만 동일한 경고문이 뜨네요. 동작은 잘되는데 왜그런지 너무 궁금합니다.

and 뒷절에 다른 컬럼을 넣어봤는데요 다른 컬럼은 잘 인식하나, isReturn만 인식을 못하고 있는거 같습니다... ㅠㅠ

 

답변 2

0

최태현님의 프로필 이미지
최태현
지식공유자

2023. 06. 05. 08:59

안녕하세요, 지웅님! 좋은 질문 감사드립니다! 😊

말씀해주신 것처럼, isReturn이라는 필드가 분명 Entity에 존재하지만, IntelliJ IDE는 isReturn 을 인식하지 못하고 작은 warning을 알려주게 됩니다!

만약 이런 warning이 불편하시다면, 특정 메소드에 한해서만 warning을 제거하는 방법도 있는데요!

@SuppressWarnings("SpringDataMethodInconsistencyInspection")
boolean existsByBookNameAndIsReturn(String name, boolean isReturn);

 

이렇게 warning이 나오는 이유는 제가 추정하기로 필드의 이름이 is 로 시작하기 때문입니다!

Java에서는 관습적으로 boolean의 getter에 대해서 isXXX 이라는 필드 이름을 사용합니다.

때문에 AndIsReturn 이라고 작성하게 되면 return 이라는 필드를 찾는게 아닐까 싶습니다.

 

만약 저희가 isReturn 이라는 필드 이름을 hello 같이 is 로 시작하지 않는 필드로 변경하고

existsByBookNameAndHello 라고 하면 warning이 사라지더라고요~

 

저 같은 경우 이러한 warning이 살짝 불편하긴 하지만, 실제 문제가 있는 것은 아니라 신경쓰지 않는 편입니다! (실제로는 QueryDSL을 많이 사용하기도 하고요)

 

또 질문 생기시면 편하게 올려주세요~ 감사합니다!! 🙏🙏

지웅님의 프로필 이미지
지웅
질문자

2023. 06. 07. 03:24

감사합니다 선생님. 덕분에 끝까지 재미있게 완강했습니다!

혹시 aws rds, ssl 관련 강의영상 계획이 있으신가요?

최태현님의 프로필 이미지
최태현
지식공유자

2023. 06. 07. 19:12

크으~~ 완강 축하드립니다!! 😊 AWS RDS, SSL (HTTPS) 관련해서 별도의 강의 계획은 없는데요! 다만 지금 이 강의에 지속적으로 컨텐츠를 업데이트할 생각이 있습니다!

(현재 다른 주제이지만, 2가지 영상을 찍어 편집 과정에 있습니다)

컨텐츠가 업데이트 될 때 메일 드릴 수 있도록 하겠습니다. 감사합니다!! 🙏

0

인프런 AI 인턴님의 프로필 이미지

2023. 06. 05. 04:16

안녕하세요, 인프런 AI 인턴이에요.

경고 메시지가 뜨는 이유는 isReturn이 boolean타입이기 때문입니다. JPA에서는 boolean타입을 인식하지 못해서 해당 컬럼을 매핑할 수 없는데, 이를 해결하기 위해 isReturn 대신에 returnStatus와 같은 이름으로 컬럼명을 변경해보시는 건 어떨까요? 또는 Boolean 타입으로 변경해서 시도해보시는 것도 방법 중 하나입니다.

도움이 되었길 바랍니다. 좋은 하루 보내세요!

지웅님의 프로필 이미지

작성한 질문수

질문하기