벌크연산 2

만약 대량의 데이터를 지워야 할 일이 있다면??? (JPA)

들어가기 본론 마무리 들어가기 만약 우리가 게시물을 지워야 한다면? 게시물과 연관된 테이블의 데이터를 먼저 지운 후 게시글을 지워야 한다. 게시물은 하나만 지우면 끝이지만, 게시물에 작성된 댓글이 만약 무수히 많다면? 게시글 - 사용자 : Many to One (다대일) 게시글 - 댓글 : Many to One (다대일) 만약 윗 코드처럼 댓글을 지우게 된다면 댓글의 갯수많큼 delete 쿼리가 발생할 것이다. 댓글이 많이 존재하지 않으면 괜찮은데, 이 댓글이 무수히 많다면? 성능상에 이슈가 발생할 여지가 생길 것이다. 어떻게 이를 해결할 수 있을까? 본론 이 글의 시작은 게시물에서 시작되었다. 예를 들어서 1번 게시물을 지우고자 할때, 윗 그림에서 확인할 수있는 것처럼, 연관관계가 맺어져 있기에 연관괸..

스프링/JPA 2023.01.14

[Error] QueryExecutionRequestException : Not supported for DML operations

직접 @Query 파라미터를 통해 데이터를 지우려고 했을 때, 발생한 Error로 쿼리유형이 잘못 동작했을 때 발생하는 타입이다. 이를 해결하기 위해서는 해당 query 메서드를 실행한 곳에 2개의 어노테이션을 추가해줘야 한다 @Modifying @Transactional @Modifying 메서드는 Query 어노테이션으로 작성된 insert나 update, delete 쿼리를 사용할 때 필요로 한다 (주로 벌크연산을 하나의 쿼리로 수행할 때 사용 ) 벌크 연산 관련 참고자료 :( https://data-make.tistory.com/617 ) @Modifying 공식문서 ( https://docs.spring.io/spring-data/data-jpa/docs/current/api/org/spring..