본문 바로가기

플밍 is 뭔들/그 외..

JPA에서 @Repository에서 쿼리를 사용할 떄 주의할 점

사용쿼리
@Repository
public interface AuthRepository extends JpaRepository<Auth, Long> {
 
       Auth findByUserIdAndUserPassword(String userId, String userPassword);
 
       @Modifying
       @Transactional
       @Query("UPDATE Auth u Set u.token = :refreshToken WHERE u.userId =  :userId")
       void saveRefreshToken(@Param("refreshToken") String
       refreshToken, @Param("userId") String userId);
       
}
위에서 직접 update 쿼리를 사용하였는데 주의해야할 점이 몇개 있다
 
1.테이블명이 아닌 클래스명을 입력하라.
UPDATE Auth u Set u.token = :refreshToken WHERE u.userId =  :userId
이 쿼리에서 Auth는 테이블명이 아니라 해당 테이블을 만들때 사용한 Entity의 클래스명이다.
실제로 데이터베이스 테이블명은 user_info 이지만 Entity의 클래스명은 Auth이기 때문에 Auth로 하지 않으면 에러가 발생한다.