인프런 커뮤니티 질문&답변
EntityManager 주입시 Annotation관련 질문드립니다.
작성
·
565
퀴즈
Spring Data 프로젝트 구조에 대한 설명 중 가장 올바른 것은 무엇일까요?
Spring Data는 Spring Data Commons와 Spring Data JPA와 무관한 독립 프로젝트입니다.
Spring Data Commons는 공통 기능을 제공하고 Spring Data JPA는 JPA 특정 기능을 추가합니다.
Spring Data Commons는 Spring Data JPA에 종속적인 하위 프로젝트입니다.
Spring Data JPA는 Spring Data Commons의 모든 기능을 포함하고 있습니다.
답변 1
0
백기선
지식공유자
안녕하세요. 좋은 질문이네요.
EntityManager를 직접 사용할 때는 @Autowired로 주입받으시면 안되고 @PersistenceContext를 사용해야 합니다. 둘다 의존성 주입을 해주긴 하지만 주입해주는 EntityManager의 scope이 다릅니다.
EntityManager를 관리하는 영속성 컨텍스트는 쓰레드 마다 달라지는데, 그래서 스프링이 @PersistenceContext 애노테이션을 지원해서 쓰레드 마다 각기 다른 EntityManager를 쓸 수 있게 해주는겁니다.





