작성
·
2.2K
답변 1
1
안녕하세요. bk11001님^^
문법상 set에서 바로 조인하는 방식은 안됩니다. 대신에 다음과 같이 where 절의 서브쿼리를 이용해서 해결할 수 있습니다.
@Test
public void updateSubquery() {
Team team = new Team("teamA");
em.persist(team);
Member newMember = new Member("user1");
newMember.setTeam(team);
em.persist(newMember);
QMember subM = new QMember("subM");
QTeam subT = new QTeam("subT");
long result = queryFactory
.update(member)
.set(member.age, member.age.add(10))
.where(member.id.in(
JPAExpressions.select(subM.id)
.from(subM)
.join(subM.team, subT)
.where(subT.name.eq("teamA"))
))
.execute();
assertThat(result).isEqualTo(1);
}
참고해주세요^^