인프런 커뮤니티 질문&답변

박병준님의 프로필 이미지
박병준

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

JPQL Flush 관련 질문

작성

·

150

0

안녕하세요. 강사님.

좋은 강의 잘 보고 있습니다.

flush/JPQL 관련 질문입니다.

아래와 같이 실행을 하면 마지막 3번 insert를 실행하지 않습니다.

JPQL 실행전 FlushModeType.COMMIT 으로도 해봤지만, 똑같이 3번 insert를 실행하지 않습니다.

JPQL을 빼면 실행이 되구요. 

참고로 저는 JPA를 이번에 처음 해봅니다. ^^

 

1. Member 생성 -> persist

2.JPQL 실행

3.Member 생성 -> persist

4.commit

 

답변 4

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요 병준님

코드를 확인해보니 보니까 중간에 예외가 발행해서 트랜잭션 커밋까지 못갔더라구요.

그래서 플러시가 호출될 기회가 없었습니다.

다음처럼 catch 부분에서 e.printStackTrace() 호출 코드를 추가하면 중간에 발생한 예외를 확인하실 수 있습니다^^

생각해보니 저도 처음 JPA 사용할 때 이것 때문에 한번 해매던 기억이 나네요^^

} catch (Exception e) {
e.printStackTrace(); //추가
tx.rollback();
} finally {
em.close();
}

0

김영한님의 프로필 이미지
김영한
지식공유자

@박병준

네^^ 다른 분들께도 도움이 될 것 같아요

그럼 언제든지 편하게 질문주세요.

0

박병준님의 프로필 이미지
박병준
질문자

에러확인했습니다.

영속성컨텍스트를 이해하는데, 도움이 되는 에러였습니다.

JPA에 조금더 다가간 느낌 입니다.

감사합니다. 강사님.~

0

김영한님의 프로필 이미지
김영한
지식공유자

반갑습니다. 병준님^^

현재 상황만 봐서는 딱 뭔가 떠오르지가 않네요. 뭔가 다른 문제가 겹쳐 있을 것 같아요.

(저도 흥미진진하네요.)

실행해보신 예제 프로젝트 자체를 전체 프로젝트를 압축해서 올려주세요.

 

박병준님의 프로필 이미지
박병준

작성한 질문수

질문하기