-
카테고리
-
세부 분야
백엔드
-
해결 여부
해결됨
update 쿼리가 발생하는 이유
20.12.12 16:36 작성 조회수 126
0
private Post savePost() {
Post post = new Post();
post.setTitle("Spring");
Post saved = postRepository.save(post);
return saved;
}
@Test
void updateTitle(){
Post spring = savePost();
spring.setTitle("hibernate");
List<Post> all = postRepository.findAll();
assertThat(all.get(0).getTitle()).isEqualTo("hibernate");
}
위 코드에서 insert 후에 update 가 일어나는 이유가 헷갈리네요. 한 트랜잭션 안이니 Post spring 은 managed 상태일테고. 그럼 title을 hibernate로 변경한 상태로 insert 쿼리를 수행해 DB와 싱크를 맞추고 select 쿼리를 날려도 되지않나요? 그런데 insert 하고 update 를 통해 title을 변경하는 이유가 궁금합니다.
좋은 강의 정말 감사합니다 :)
답변을 작성해보세요.
1
백기선
지식공유자2020.12.13
좋은 질문입니다. 그 부분은 저도 아쉽게 생각하는 동작 방식인데 하이버네이트가 내부적으로 action 단위(insert, update, delete 등)로 캐싱하고 있기 때문에 그런거라서 어쩔 수가 없네요.
답변 1