강의

멘토링

커뮤니티

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

maui2005님의 프로필 이미지
maui2005

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

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장을 확인해주세요.

감사합니다.

maui2005님의 프로필 이미지
maui2005

작성한 질문수

질문하기