TIL
spring delete 쿼리가 안나갈 경우.
하얀잔디
2024. 9. 3. 10:49
delete 쿼리가 바로 안나갈떄가 있다.
지연 쿼리떄문임!
그러면 왜 insert는 바로 되는것같지?
-> 1. Transactional 로 안묶여있을 경우
->2. Id 생성전략이 identity 인 경우에는 그렇게 됨 ( 다음 시퀀스 select해야해서)
- insert / delete 메소드의 트랜잭션 범위:
- 이 메소드가 별도의 @Transactional 어노테이션을 가지고 있거나,
- 서비스 레이어에서 이 메소드를 호출하고 그 서비스 메소드가 @Transactional로 annotate 되어 있다면,
- insertCity() 메소드가 종료될 때 해당 트랜잭션이 커밋되면서 INSERT 쿼리가 즉시 실행될 수 있습니다.
- ID 생성 전략:
- 만약 엔티티의 ID가 @GeneratedValue(strategy = GenerationType.IDENTITY)로 설정되어 있다면, Hibernate는 ID를 얻기 위해 즉시 INSERT 쿼리를 실행합니다.
- 즉시 로딩(Eager Loading) 설정:
- 만약 City 엔티티가 즉시 로딩되는 관계를 가지고 있다면, 이로 인해 INSERT 쿼리가 즉시 실행될 수 있습니