[Spring Data JPA] JPA에서 Query작성하는 법(with @Query)
2023. 2. 22.
반응형

JPA는 여러 Repository를 이용해 쿼리를 직접 짜지 않고 코드로 돌리는데 의의가 있다.
 
그 러 나? 아주 복잡한 쿼리는 JPA도 감당할 수 없는 경우가 있다. 그럴 때는 직접 쿼리를 작성할 수 있다.
 

@Modifying
@Query("update User u set u.userNickname =:nickname where u.userId =:userId")
void modifyUserNickname(@Param("userId")Long userId, @Param("nickname")String nickname);

 
실제 프로젝트에서 코드를 퍼왔다.
@Query 어노테이션을 사용하면 직접 쿼리가 작성이 가능하다. (User가 대문자인 이유는 Jparepository에서 엔티티를 사용해야 하기 때문이다)
@Modifying 어노테이션은 update 쿼리를 돌릴 때 붙여줘야 한다. (안 붙이면 에러남)
@Param 어노테이션은 직접 파라미터를 지정해준다. (안 붙이면 에러남, 근데 날 때도 있고, 안 날 때도 있는데 기준을 모르겠음. 그냥 돌렸는데 이거 때문에 에러 났다고 하면 넣어줌)
 
이건 한 예시고 직접 쿼리를 짜고 함수를 커스터마이즈 해서 직접 메소드를 만들 수 있다.
 
 
 

반응형
myoskin