[Spring Data JPA] JPA에서 Query작성하는 법(with @Query)
반응형
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 어노테이션은 직접 파라미터를 지정해준다. (안 붙이면 에러남, 근데 날 때도 있고, 안 날 때도 있는데 기준을 모르겠음. 그냥 돌렸는데 이거 때문에 에러 났다고 하면 넣어줌)
이건 한 예시고 직접 쿼리를 짜고 함수를 커스터마이즈 해서 직접 메소드를 만들 수 있다.
반응형
'Logs' 카테고리의 다른 글
-
[Git] remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/XXX.git/' push 권한 관련 에러 해결하는 방법2023.06.22
-
[Spring Data JPA] org.springframework.core.convert.ConverterNotFoundException No converter found capable of converting from type 에러 해결 방법2023.04.12
-
[Spring boot] JPA QueryDSL 환경 설정, 연동하기 (Maven, Gradle ver)2023.02.22
-
[Spring boot] @RequestBody로 객체 여러 개(entity, dto, dao, vo등) 한 번에 받아서 처리하는 법2023.02.22