티스토리 뷰
반응형
안녕하세요! 이번에는 테이블의 delete와 초기화를 보다 쉽게할 수 있는 truncate 를 간단히 설명하고, 이를 JPA에서 구현하는 방법에 대해 설명드리고자 합니다.
Truncate란?
전체 데이터를 삭제하는 것처럼 보이지만 실제로 테이블을 DROP 후 CREATE 하는 작업, 실행 시 데이터 초기화는 물론이거니와 자동으로 생성된 AUTO_INCREMENT 또한 ID값이 1로 시작됩니다. 데이터를 삭제하는 것이 아닌 테이블을 제거하였다가 생성하므로 delete 쿼리를 전송하였을 때보다 속도가 월등히 빠릅니다.
장점: 속도 빠르고 효율적
단점: 외래키가 걸려있으면 에러 발생, 특정 데이터만 삭제 불가능
사용법
Repository
public interface SomethingTableRepository extends JpaRepository<SomethingTable, Long> {
@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();
}
}
반응형
'Server' 카테고리의 다른 글
에러 페이지의 작동원리 이해하기 (6) | 2021.12.01 |
---|---|
[Java] Map의 확장 형태인 NavigableMap (0) | 2021.11.27 |
[Java] Lists 의 partition 메소드 사용법 (7) | 2021.11.25 |
[Java] DTO에 자동 호출 로직 적용하기 (2) | 2021.11.22 |
[Java] QueryDSL 을 사용하여 Multi Data Source 사용하기 (0) | 2021.11.13 |
JMeter 부하 테스트 사용하기 (0) | 2021.11.12 |
댓글
공지사항