Spring

Validation failed for query for method public abstract 오류 발생시 (JPA)

dodop 2022. 3. 4. 22:26

 

 

 

 

existsBy를 이용하여 연관관계의 데이터 아이디로 데이터 존재여부를 아는 쿼리를 작성하려고 할때 알맞은 쿼리임에도 

쿼리 실패 오류가 발생했다. 

 

 

 

기존의 코드
    @Query(value = "SELECT CASE WHEN count(f) > 0 THEN true ELSE false END FROM Follow f LEFT JOIN FETCH f.fromUser a LEFT JOIN FETCH f.toUser b WHERE a.id=:fromUserId AND b.id=:toUserId")
    boolean existsByFromUserIdAndToUserId(Integer fromUserId, Integer toUserId);

기존코드를 보면 네이티브 쿼리로 작성되어 있으므로

 

 

수정한 코드 
    @Query(value = "SELECT CASE WHEN count(f) > 0 THEN true ELSE false END FROM Follow f LEFT JOIN FETCH f.fromUser a LEFT JOIN FETCH f.toUser b WHERE a.id=:fromUserId AND b.id=:toUserId", nativeQuery = true)
    boolean existsByFromUserIdAndToUserId(Integer fromUserId, Integer toUserId);

해당 쿼리 어노테이션에 nativeQuery 옵션을 true로 주면 작동하는 것을 확인할 수 있다. 

 

 

 

 

( 참고한 사이트 )

https://jamong-icetea.tistory.com/173

 

[JPA] Validation failed for query for method public abstract...

Validation failed for query for method public abstract... JPA를 통해 쿼리를 출력하는데 위와 같은 에러가 발생했다. 1 2 3 4 @Query("SELECT COUNT(u.uid) "         + "FROM USERINFO u "  ..

jamong-icetea.tistory.com