인프런 커뮤니티 질문&답변
EntityManager 과 JpaRepository 관련해서 질문이 있습니다..!
작성
·
453
0
강의에서는 MemberRepository 등 Repository 를 생성하실 때마다 EntityManager 객체를 생성하셔서
save 할시에는 em.persist(member) 이런식으로 설명을 해주셨는데요..!
공부를 하다보니까 실제로 다른 곳들에선 EntityManager 를 호출하기보단 JpaRepository 를 상속받아서 사용하는 것을 많이 보았습니다..!
그러다보니 헷갈리는게 EntityManager 와 JpaRepository 는 어떻게 다른가요...??
그리고 만약 MemberRepository 에서 extends JpaRepository 를 해주고
ItemRepository 에서 extends JpaRepository 를 해주고
회원을 저장할때는 memberRepository.save(member);
아이템을 저장할때는 itemRepository.save(item); 이렇게 해준다면
둘은 서로 다른 영속성 컨텍스트에서 관리되는 것인가요...??
JpaRepository 를 사용할때는 EntityManager 을 직접 호출?? 하지 않다보니 많이 헷갈려서 여쭤봅니다..!!ㅠㅠ
답변 1
0
안녕하세요. maui2005님, 공식 서포터즈 David입니다.
1. 그러다보니 헷갈리는게 EntityManager 와 JpaRepository 는 어떻게 다른가요...??
=> 둘은 비교대상이 아닙니다. JpaRepository의 구현체 내부에서 EntityManager가 사용됩니다.
이 부분은 실전 스프링 데이터 강의 - 공통 인터페이스 분석편에서 다룹니다.
2. 둘은 서로 다른 영속성 컨텍스트에서 관리되는 것인가요...??
=> 동일한 트랜잭션인지 아닌지에 따라 다릅니다. 자세한 사항은 JPA책 13장을 확인해주세요.
감사합니다.





