Spring Data JPA 사용 중 unique 제약조건이 있는 데이터를 삭제한 뒤 추가하는 경우 duplicate entry 에러가 발생했다. 🫠 나는 데이터를 삭제했는데 왜 에러가 나지?1. 영속성 컨텍스트의 쓰기 지연 성질로 @Transactional 내부의 쿼리문들은 마지막에 한 번에 실행2. Hibernate의 쿼리 실행 인터페이스(AbstractFlushingEventListener)의 구현 메서드(performExecutions)는 동작하는 SQL 순서가 정해져 있다. 따라서 delete 코드를 먼저 작성했더라도 insert 쿼리를 먼저 실행한 후에 delete를 실행한다. 엔티티 매니저는 트랜잭션을 커밋하기 직전까지 DB에 쿼리를 날리지 않고 내부 쿼리 저장소에 모아둔 후 트랜잭션을 ..