본문 바로가기
IT/Java

[JPA] 쿼리메서드 existsById 관련 ( Required identifier property not found for class com.com.jpa.TestTable )

by 성준하이 2023. 10. 24.
반응형

이전 포스팅에서 쿼리 메서드 관련 포스팅을 작성한 적이 있다.

자세한 내용은 참고 포스팅 참고 바란다.

 

추가로 existsBy 관련 메서드를 추가하려고 테스트 해보다가 existsBy는 다른 쿼리메서드 들하고 조금 달라서 별도로 다루게 되었다.

 

먼저 findById를 기준으로 설명하면

id를 기준으로 find 해라 
라는 의미이다.

 

그럼 existsById라면 어떤 의미일까?

해당 Id가 존재하는지 확인해라 이다.

결과는 boolean값으로 true / false가 나오게 된다.

 

하지만 findBy와는 다르게 사용하기 위해 전제조건이 있다.

바로 @Id 로 idendifier를 지정해야한다.

 

없는 테이블 엔티티로 테스트를 할경우 이런 에러가 나온다.

Required identifier property not found for class com.com.jpa.TestTable

 

그래서 Id 를 지정하고 existsById를 사용하면 결과가 나온다.

참고로 findBy 처럼 꼭 Id 값이 아니어도 name이라면

existsByName으로 사용하면된다.

하지만 Id 값은 name이 아니더라도 어느 컬럼이든 지정이 되어있어야한다.


참고 포스팅

https://thenicesj.tistory.com/394

 

JpaRepository 관련 쿼리메서드

JPA 를 사용하게 되면 repository 에서 JpaRepository 를 상속 받아서 해당 repository의 메서드를 사용할수 있다. 대표적으로 findById 가 있는데 비슷한 메서드 들을 좀더 알아보기 위해 포스팅을 작성해본

thenicesj.tistory.com

 

반응형

댓글