쌓고 쌓다
JPA에서 save시 SELECT 쿼리 실행 본문
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 쿼리가 나간다.
'프로그래밍 > JPA' 카테고리의 다른 글
JPA로 INSERT할때 MySQL 테이블 DEFAULT 값 넣기 (2) | 2023.11.20 |
---|---|
JPA find 후 엔티티 변경시 UPDATE가 안날라갈때 with Transaction (0) | 2023.11.10 |
양방향 연관관계 매핑 JSON 순환참조 문제 (0) | 2023.08.19 |
[JPA] 고아 객체 제거 + orphanRemoval 동작하지 않을때 (0) | 2023.08.18 |
[JPA] 영속성 전이(CASCADE): 삭제 (0) | 2023.08.18 |
Comments