작성
·
226
0
@Test
public void bulkUpdate() {
long count = queryFactory
.update(member)
.set(member.username, "비회원")
.where(member.age.lt(28))
.execute();
em.flush();
em.clear();
List<Member> result = queryFactory
.selectFrom(member)
.fetch();
for (Member member1 : result) {
System.out.println("member1 = " + member1);
}
}
답변 1
0
안녕하세요. with_all님
JPA는 이런 문제를 예방하기 위해 JPQL을 실행하기 직전에 항상 영속성 컨텍스트를 flush합니다.
Querydsl을 통한 벌크 update도 결국 JPQL로 실행되기 때문에 결과적으로 먼저 flush가 발생한 다음에 update가 실행됩니다.
감사합니다.
답변 감사드립니다.