[querydsl] 수정, 삭제 배치 쿼리 사용 시 주의할 점
·
Backend/JPA
주의해야할 점 bulk연산을 수행하면, db와 영속성 컨텍스트의 값이 서로 다르다. 쿼리 수행 전 member1 = 10 → DB member1 member2 = 20 → DB member2 member3 = 30 → DB member3 member4 = 40 → DB member4 long execute = queryFactory .update(member) .set(member.username, "비회원") .where(member.age.lt(28)) .execute(); 쿼리 수행 후 member1 = 10 → DB 비회원 member2 = 20 → DB 비회원 member3 = 30 → DB member3 member4 = 40 → DB member4 queryFactory .selectFrom..
[querydsl] @queryProjection vs Projections.constructor
·
Backend/JPA
@QueryProjection vs Projections.constructor constructor : 실제 유저가 코드를 실행하는 순간이 되어서야 문제를 찾을 수 있음, 어떤 파라미터가 필요한지 찾기 어려움 @QueryProjection : 컴파일 단계에 에러를 해결할 수 있다. → querydsl의 의존적으로 설계하게 됨 둘 다 장단점이 있으므로, 본인 프로젝트의 아키텍처에 맞는 선택을 하면 됨