쌓고 쌓다

JPA에서 save시 SELECT 쿼리 실행 본문

프로그래밍/JPA

JPA에서 save시 SELECT 쿼리 실행

승민아 2023. 9. 11. 16:02

application.properties - jpa가 날리는 sql 보기

spring.jpa.show-sql=true

 

코드를 작성했는데 이상하게 SELECT 문이 나가는것이다...

memberRepository.save(member);

 

save시

INSERT 쿼리가 날라가고

SELECT 쿼리가 날라가는 것이다.

 

왜일까?

save 메서드는 이미 존재하는 식별자 값이라면 이미 있는 엔티티로 판단해 merge를 한다.

만약 없는 식별자 값이라면 새로운 엔티티로 persist를 한다.

 

즉,

이미 존재하는 식별자 값이면. 변경 사항이 있다면 UPDATE하고

존재하지 않는 식별자 값이라면 INSERT한다.

 

 

한번 진짜 존재하는 엔티티 식별자가 있으면 UPDATE를 날리는지 보자.

현재 DB에 값이 존재한다.

 

이때 똑같은 엔티티를 저장할 것인데

member.setNickname("변경된 닉네임");
memberRepository.save(member);

닉네임만 살짝 바꿔서 save해보자.

 

UPDATE 쿼리가 나간다.

Comments