public interface RecCampListRepository extends JpaRepository<RecCampList, Integer> {
@Query("SELECT rc FROM RecCampList rc WHERE rc.user.id = :userId")
List<RecCampList> getByUser(@Param("userId") String userId);
@Query("SELECT rc FROM RecCampList rc WHERE rc.doNm = :doNm and rc.user.id = :userId")
List<RecCampList> getByDoNmAndUser(@Param("userId") String userId, @Param("doNm") String doNm);
@Modifying
@Transactional
@Query("DELETE FROM RecCampList rc WHERE rc.user.id = :userId")
void deleteByUser(@Param("userId") String userId);
}
- @Modifying 어노테이션: DELETE, UPDATE 등의 DML 쿼리를 실행할 때는 반드시 @Modifying 어노테이션을 추가해야 합니다. 이 어노테이션은 Spring Data JPA에게 이 쿼리가 데이터 수정용임을 알립니다.
- @Transactional 어노테이션: 데이터 수정 쿼리를 실행할 때는 트랜잭션이 필요합니다. 따라서 @Transactional 어노테이션을 추가하여 해당 메서드를 트랜잭션으로 실행되도록 합니다.
'BackEnd : Spring > SpringBoot' 카테고리의 다른 글
[SpringBoot] JPA @ColumnDefault, @Builder.Default (0) | 2025.02.24 |
---|---|
[Spring Boot] 영속성 컨텍스트 / 엔티티 값 update 하기 (1) | 2024.11.28 |
[TalentTree 프로젝트] HttpSession : 로그인된 사용자 정보 가져오기 (0) | 2024.06.03 |
[Springboot] 연관관계 매핑 : 일대일 (0) | 2024.05.27 |
[Springboot] SpringBoot 3.x maven+ QueryDSL 설정하기 (0) | 2024.05.27 |