플러시 관련 질문드립니다.
173
작성한 질문수 7
findAll 같은 메서드는 플러시를 강제 발생시키는 것은 명확한 이유가 있다고 생각합니다.(강의 말씀 처럼 싱크를 맞춰야 하기 때문에)
그런데 식별자로 조회하는 findOne, findById 같은 메서들은 왜 플러시를 발생시키지 않을까요 ?
제 생각에는
User user = userRepository.save(user); // 아직 플러시를 발생시키지 않았음으로 데이터베이스에는 없는 상태userRepository.findById(user.getId()); // 위에서 플러시를 발생시키지 않았기 때문에 조회되지도 않을거 같습니다.
영속성 컨텍스트가 1차 캐시를 가지고 있기 때문에 플러시를 실행하지 않는거 같습니다.
혹시 이런 이유인가요? 아니면 다른 이유가 있을까요?
답변 1
1
우선 질문 감사합니다.
findBy를 했을 때 해당 id에 해당하는 객체가 영속성 컨텍스트에 있기 때문에 select가 발생하지 않다는 댓글이 맞습니다. "플러시를 발생시킺 않았기 때문에 조회되지도 않을것 같다."는 맞지 않습니다. save를 안 한 이유는 강좌에서 여러번 설명한대로, 테스트에 롤백 트랜잭션이 걸려있기 때문에 싱크를 해야할 필요가 없어서 안한 것이고, findBy에 대한 select를 안한 이유는 (Persistence Context에 이미 들어있어서) 할 필요가 없기 때문에 안한 것일 뿐입니다.
spring boot 2.7.13-SNAPSHOT trace 소문자 로그 안나옴
0
533
1
<스프링 데이터 Common: 기본 리포지토리 커스터마이징> 에 대한 질문
0
392
1
comment table에서 저장될떄 왜 id값이 2부터저장이되는건가요?
0
407
1
@EnableJpaRepositories 설정을 스프링부트가 어디에서 자동설정하나요?
0
451
0
PersistenceContext 관련 질문드립니다.
0
335
1
지금(Eager), 나중에(Lazy)의 의미를 모르겠습니다
0
338
1
transaction 구간이 길어질 경우의 처리방법 문의드립니다.
0
905
1
docker postgres
0
293
1
Multiple DataSource 사용 시 transaction 관련 질문 드립니다.
0
2908
1
entity 중 null이 아닌 필드만 update 할 방법이 있을까요?
0
1191
1
Eager 모드일 경우, join을 inner join으로 바꾸는 법이 있을까요?
0
385
1
엔티티를 상속받는 DTO가 일반적인가요?
1
1847
1
커스텀 타입 클래스를 String 타입 처럼 이용해 쿼리하는 방법에 대해 질문하고 싶습니다.
0
339
1
연관관계 매핑 어떤식으로 해야될지 감이 안잡힙니다.
0
566
4
EntityManager 주입시 Annotation관련 질문드립니다.
0
565
1
클래스 기반 프로젝션 사용 관련 질문
0
560
1
save 메서드 질문드립니다.
0
258
1
복잡한 통계쿼리도 JPA로 가능한가요?
2
5593
1
find 와 get의 차이가 무엇인가요?
0
890
1
실무에서 JPA 할 때 FK로 개발할때 연관관계를 꼭 맺어주어야 하나요?
0
999
1
\dt Did not find any relations.
0
481
1
소스코드는 어디서 볼 수 있을까요?
1
287
1
table 생성과 select 문에 대한 질문
0
174
1
스프링 데이터 RepositoryTest 관련 질문
0
2173
2





