• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

EntityManager 주입시 Annotation관련 질문드립니다.

21.09.23 23:53 작성 조회수 397

0

안녕하세요 강사님. 강의 잘 듣고있습니다!

강의를  보다가 문득 의문이 들어서 질문남깁니다.

EntityManager를 @Aurowired로 주입받는 것과 @PersistenceContext로 받았을 때 차이점이 무엇인가요? 

둘 다 의존성을 잘 받아오길래 차이점이 궁금합니다!

답변 1

답변을 작성해보세요.

0

안녕하세요. 좋은 질문이네요.

EntityManager를 직접 사용할 때는 @Autowired로 주입받으시면 안되고 @PersistenceContext를 사용해야 합니다. 둘다 의존성 주입을 해주긴 하지만 주입해주는 EntityManager의 scope이 다릅니다.

EntityManager를 관리하는 영속성 컨텍스트는 쓰레드 마다 달라지는데, 그래서 스프링이 @PersistenceContext 애노테이션을 지원해서 쓰레드 마다 각기 다른 EntityManager를 쓸 수 있게 해주는겁니다.