• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

em.close()한 경우에도 업데이트 문이 실행되는데요.

23.07.17 19:44 작성 조회수 404

0

이렇게 실행했는데, 로그에 업데이트 쿼리가 찍히네요.

실제 사용할때는 트랜잭션 종료 이후에 em.close() 실행될텐데...테스트 코드라서 이상한긴 한데 좀 궁금하네요.


public class JpaDetachMain {
public static void main(String[] args) {
final EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");
final EntityManager em = emf.createEntityManager();
final EntityTransaction tx = em.getTransaction();
tx.begin();

try{

//영속
Member member = em.find(Member.class, 10L);
member.setName("111");
em.close();
System.out.println("==============");


tx.commit();

}catch (Exception e){
tx.rollback();
}finally {
em.close();
emf.close();
}
}
}

답변 1

답변을 작성해보세요.

0

y2gcoder님의 프로필

y2gcoder

2023.07.18

안녕하세요. Sunghyun im님, 공식 서포터즈 y2gcoder입니다.

update 쿼리가 나간다니 너무 궁금합니다! Sunghyun im 님의 전체 코드를 한 번 살펴보고 싶습니다 :)

실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx


주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요


추가로 다음 내용도 코멘트 부탁드립니다.

1. 문제 영역을 실행할 수 있는 방법

2. 문제가 어떻게 나타나는지에 대한 상세한 설명

감사합니다.

앞선 댓글에 이미 있는 질문이네요.

https://www.inflearn.com/questions/53733

y2gcoder님의 프로필

y2gcoder

2023.07.19

찾고 공유해주셔서 너무 감사합니다!

파이팅입니다 :)