벌크성 수정 쿼리
순수 JPA
@Repository
public class MemberJpaRepository {
public int bulkAgePlus(int age) {
int resultCount = em.createQuery("update Member m set m.age = m.age + 1 where m.age >= :age")
.setParameter("age", age)
.executeUpdate();
return resultCount;
}
}@SpringBootTest
@Transactional
@Rollback(value = false)
class MemberJpaRepositoryTest {
@Test
public void bulkUpdate() throws Exception {
memberJpaRepository.save(new Member("member1", 10));
memberJpaRepository.save(new Member("member2", 19));
memberJpaRepository.save(new Member("member3", 20));
memberJpaRepository.save(new Member("member4", 21));
memberJpaRepository.save(new Member("member5", 40));
int resultCount = memberJpaRepository.bulkAgePlus(20);
assertThat(resultCount).isEqualTo(3);
}
}update member
set age=age + 1
where age >= 20;스프링 데이터 JPA
public interface MemberRepository extends JpaRepository<Member, Long> {
@Modifying
@Query("update Member m set m.age = m.age + 1 where m.age >= :age")
int bulkAgePlus(@Param("age") int age);
}@SpringBootTest
@Transactional
@Rollback(value = false)
class MemberRepositoryTest {
@Test
public void bulkUpdate() throws Exception {
memberRepository.save(new Member("member1", 10));
memberRepository.save(new Member("member2", 19));
memberRepository.save(new Member("member3", 20));
memberRepository.save(new Member("member4", 21));
memberRepository.save(new Member("member5", 40));
int resultCount = memberRepository.bulkAgePlus(20);
assertThat(resultCount).isEqualTo(3);
}
}주의사항
참고
Last updated