Could not autowire. No beans of 'EntityManager' type found.

2022. 5. 30. 11:16ERROR

Spring, JPA를 실습중인데, 테스트 코드를 작성하다가 제목과 같은 에러가 발생했다.

주입을 하려면 스프링으로 관리하는 Bean이 되어야 하는데,
JPA와 스프링은 각자의 방식(영속성 컨텍스트와 스프링 컨테이너)으로 빈을 관리하거나 엔티티를 관리한다.

JPA는 EntityManager라는 인터페이스를 주입할 때 고유의 injection annotation이 존재한다.

@PersistenceContext
EntityManager em;

지금까지 @Autowired로 문제없이 주입했던 것 같은데,, 앞으로는 위의 어노테이션을  사용해야겠다.
물론 @Autowired로 EntityManager를 주입받아도 테스트는 통과했다..

 

참고한 링크

https://stackoverflow.com/questions/22301426/no-qualifying-bean-of-type-javax-persistence-entitymanager

 

No qualifying bean of type [javax.persistence.EntityManager]

I am attempting to build a brand new Spring Framework 4.0 project without all of the magical gradle stuff, but simply kicking it old school. I am following the tutorial here: http://spring.io/guides/

stackoverflow.com