on
JPA 사용시 Truncate 사용방법
JPA 사용시 Truncate 사용방법
728x90
728x90
안녕하세요! 이번에는 테이블의 delete와 초기화를 보다 쉽게할 수 있는 truncate 를 간단히 설명하고, 이를 JPA에서 구현하는 방법에 대해 설명드리고자 합니다.
Truncate란?
전체 데이터를 삭제하는 것처럼 보이지만 실제로 테이블을 DROP 후 CREATE 하는 작업, 실행 시 데이터 초기화는 물론이거니와 자동으로 생성된 AUTO_INCREMENT 또한 ID값이 1로 시작됩니다. 데이터를 삭제하는 것이 아닌 테이블을 제거하였다가 생성하므로 delete 쿼리를 전송하였을 때보다 속도가 월등히 빠릅니다.
장점: 속도 빠르고 효율적
단점: 외래키가 걸려있으면 에러 발생, 특정 데이터만 삭제 불가능
사용법
Repository
public interface SomethingTableRepository extends JpaRepository { @Transactional @Modifying @Query(value = "truncate something_table", nativeQuery = true) void truncateSomethingTable(); }
Service
public class SomethingTableServiceImpl implements SomethingTableService { @Autowired private SomethingTableRepository repository; @Override public void truncate() { repository.truncateSomethingTable(); } }
참고: https://stackoverflow.com/questions/52989131/is-it-possible-to-use-truncate-in-spring-data-jpa-using-jparepository-or-a-mo
728x90
728x90
from http://abbo.tistory.com/217 by ccl(A) rewrite - 2021-11-25 09:02:11