해결된 질문
작성
·
546
0
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
스프링부트 버전 3.1.2
Querydsl 버전 5.0.0
테스트 코드에서 질문 드릴 것이 있사옵니다. @Test
void contextLoads() {
Hello hello = new Hello();
em.persist(hello);
JPAQueryFactory query = new JPAQueryFactory(em);
QHello qHello = new QHello("h");
System.out.println("========START");
Hello result = query
.selectFrom(qHello)
.fetchOne();
System.out.println("========END");
assertThat(result).isEqualTo(hello);
}
같은 트랙잭션에서 영속성 컨텍스트의 데이터를 얻어올 테니 result와 hello가 같은 게 당연한데요. querydsl로 select하는 부분에서 insert와 select query가 나가더라고요.
========START
2023-08-02T13:14:13.697+09:00 DEBUG 2696 --- [ Test worker] org.hibernate.SQL :
insert
into
hello
(id)
values
(?)
2023-08-02T13:14:13.699+09:00 INFO 2696 --- [ Test worker] p6spy : #1690949653699 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/datajpa
insert into hello (id) values (?)
insert into hello (id) values (1);
2023-08-02T13:14:13.717+09:00 DEBUG 2696 --- [ Test worker] org.hibernate.SQL :
select
h1_0.id
from
hello h1_0
2023-08-02T13:14:13.718+09:00 INFO 2696 --- [ Test worker] p6spy : #1690949653718 | took 0ms | statement | connection 4| url jdbc:h2:tcp://localhost/~/datajpa
select h1_0.id from hello h1_0
select h1_0.id from hello h1_0;
========END
1차 캐시에서 데이터를 가져올텐데 굳이 query가 왜 나가는지 궁금합니다. 1차 캐시가 새로 갱신되었을리도 없고 갱신되어서도 안 된다고 생각했습니다.
답변 1
2
안녕하세요. literate_t님, 공식 서포터즈 David입니다.
아래 글 답변을 참고해 주세요:)
https://www.inflearn.com/questions/200857
감사합니다.
해결되었습니다. 감사합니다 :)