JPA
2023.12.20 TIL - JPA - deleteAll() / deleteAllInBatch()
개인 복습과제에 마지막 수정일이 90일이 지난 데이터들을 삭제하려는 요구사항이 있어 Spring 스케줄을 통해 삭제하려고 한다. 해당 조건에 맞는 데이터를 찾은 후 List를 deleteAll() 메소드로 지우려고 작성하고 테스트하는데 날라간 쿼리를 보니 N개 만큼 delete 요청을 보내고있다.. deleteAll() deleteAll 내부를 보니 다음과 같이 구현되어있다. 코드를 보면 Iteratable을 상속받는 클래스타입의 객체(필자는 List를 넘김) 에서 for문을 통해 delete 쿼리를 날리고있었다. 그래서 한 번에 쿼리를 날리는 메소드가 있는지 찾아보았다. deleteAllInBatch() 찾아보니 deleteAllInBatch 라는 메소드가 있었다 해당 메소드 구현은 다음과 같다. 쿼리..
[Spring] spring-data-jpa Auditing 사용하기
Auditing 테이블을 설계할 때, 공통적으로 들어가는 컬럼이있는데, 바로 생성일자,수정일자,생성자,수정자 이다. 거의 모든 테이블에 들어가있고 정렬, 필터, 또는 검증? 도 할 수 있는 꽤나 중요한 정보들이다. 하지만 서비스를 요청을 하거나 응답을 줄 때, 필요한 정보가 아니기도하다. 서비스에는 영향이없지만 필요하고 중요한? 데이터를 spring-data-jpa 모듈에서 자동으로 넣을 수 있도록 제공을해준다. 해당 기능이 바로 Auditing이다. 사용하기 1. Main App 클래스에 @EnableJpaAuditing 추가하기 @EnableJpaAuditing @SpringBootApplication public class Application { 2. 엔티티 클래스 위에 @EntityListene..