플러시 관련 질문
372
작성자 없음
작성한 질문수 0
영상에서 보면 플러시가 영속성 컨텍스트에 있는 1차 캐시 정보를 토대로 SQL 쓰기 지연 저장소 내용을 데이터베이스에 반영한다고 말씀해주셨습니다. 그리고 커밋되는 시점에 플러시가 자동으로 반영된다고도 말씀해주셨는데요,
그런데 아래 코드를 보면 강제로 플러시를 한번 호출하고 커밋을 반영해서 플러시를 결과적으로 두번 호출한 꼴이 될텐데 왜 데이터베이스에는 데이터가 두개가 아니라 한개만 반영되어 들어간건가요?
Member member = new Member(3L, "TEST_JPA");
em.persist(member);
em.flush();
tx.commit();
답변 1
-1
안녕하세요. 펭귄님, 공식 서포터즈 OMG입니다.
.
트랜잭션의 커밋과 롤백에 대해 생각하면 좋을 것 같습니다. 실제 트랜잭션을 반영하는 것은 커밋, 취소하는 것은 롤백입니다.
flush와 commit 모두 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영하지만, 트랜잭션을 종료하는 것은 commit() 메서드입니다. 그래서 코드에서 데이터가 두 번 저장되지 않고, 한 번만 저장됩니다.
.
감사합니다.
0
음 그럼 flush 의 역할이 호출될 때마다 insert 쿼리를 날려서 db에 반영시키는게 아니라
최초로 한번 insert 날리고나서 영속성 컨텍스트에 변경 내용이 있을 때마다 db에 반영시켜주는건가요??
inheritance startegy 선택시 고려사항
0
11
0
Entity 동등성 비교
0
14
1
실무 조언 관련 질문입니다.
0
41
1
H2데이터베이스 파일 생성
0
52
2
서브쿼리 강의에서 ALL 예시 관련 질문드립니다.
0
49
2
수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?
0
48
1
JPQL 메소드와 락
0
53
1
Delivery @OneToOne
0
57
1
17강 4~5분대 테이블 값 조회가 안됩니다.
0
89
2
UnsupportedOperationException 발생
0
82
3
H2 Database 연결이 안됩니다.
0
89
2
연관관계 매핑 질문드립니다.
0
82
2
h2데이터베이스 실행오류
0
105
2
persistence.xml
0
103
2
양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?
0
77
1
영속성 컨텍스트
0
62
1
JPA 프록시
0
90
1
Native Query와 MyBatis
0
63
1
영속성 컨텍스트는 어떤 메모리에 저장되는건가요?
0
84
1
임베디드 타입 예시 코드 관련 질문
0
112
3
명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요
0
91
3
인텔리제이 패키지 커서 단축키 질문
0
106
2
혹시 현재는 ID 데이터 타입이 String이면 안되나요?
0
137
1
양방향 연관관계 시 연관관계 주인을 설정하는 이유
0
68
1





