flush 질문 있습니다.
204
작성자 없음
작성한 질문수 0
강의 flush 내용에서 JPQL을 날릴때에는 자동으로 flush 가 실행된다 설명을 해주셨는데
flush만 날릴 경우에는 데이터베이스에 커밋이 되어있지 않기때문에 flush가 실행되도 조회가 되지 않을 것 같은데 JPQL은 실행될때 커밋도 함께 실행되는 건가요?
답변 1
0
안녕하세요. 형욱님
플러시를 한다고 해서 커밋이 되는 것은 아닙니다.
커밋은 별도로 실행해야 합니다.
그런데 JPA를 통해서 커밋을 하면 플러시가 자동으로 먼저 실행되고, 커밋됩니다.
감사합니다.
0
@Entity
public class Member {
@Id @GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="MEMBER_ID")
private Long id;
맴버 객체에 @GeneratedValue를 Auto로 선택하고
메인 클래스 파일에서
Member member = new Member();
member.,setName("test");
em.persist(member);
em.persist 할 때에 1차 캐시에 기본키를 모르기 때문에 먼저 flush를 실행하여 디비에 먼저 반영을 해서 기본키를 가져와 1차 캐시에 member 객체를 관리하는 걸로 이해를 했습니다.
그렇다면 디비에는 반영이 들어가있지만 커밋이 실행되지 않는 상태이므로 임시적으로 디비에 값이 들어가 있다고 생각하면 되는걸까요?
그 후에 commit이 실행되면 저장되고 실행되지 않는다면 취소되는 걸로 이해하면 되는걸까요 ?
0
안녕하세요. 형욱님^^
제가 직접 정답을 알려드릴 수 도 있지만, 그러면 더 많은 것을 얻어가지 못합니다.
개발자는 궁금한 부분을 직접 코드로 테스트 해볼 때 가장 많이 배울 수 있습니다.
해당 부분을 코드로 직접 테스트해보시고, 그 결과를 공유해주세요. 그러면 함께 공부하는 분들께도 큰 도움이 될거에요.
그럼 테스트 해보시고 결과도 정리해서 공유 부탁드립니다.
감사합니다.
실무 조언 관련 질문입니다.
0
36
1
H2데이터베이스 파일 생성
0
45
2
서브쿼리 강의에서 ALL 예시 관련 질문드립니다.
0
47
2
수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?
0
45
1
JPQL 메소드와 락
0
47
1
Delivery @OneToOne
0
54
1
17강 4~5분대 테이블 값 조회가 안됩니다.
0
84
2
UnsupportedOperationException 발생
0
80
3
H2 Database 연결이 안됩니다.
0
86
2
연관관계 매핑 질문드립니다.
0
77
2
h2데이터베이스 실행오류
0
103
2
persistence.xml
0
100
2
양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?
0
74
1
영속성 컨텍스트
0
59
1
JPA 프록시
0
86
1
Native Query와 MyBatis
0
60
1
영속성 컨텍스트는 어떤 메모리에 저장되는건가요?
0
81
1
임베디드 타입 예시 코드 관련 질문
0
110
3
명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요
0
89
3
인텔리제이 패키지 커서 단축키 질문
0
100
2
혹시 현재는 ID 데이터 타입이 String이면 안되나요?
0
133
1
양방향 연관관계 시 연관관계 주인을 설정하는 이유
0
67
1
임베디드 타입과 MappedSuperClass의 차이점이 궁금합니다.
0
95
1
데이터베이스가 초기화되는 것 같아요
1
172
2





