EntityManagerFactory를 활용한 페치조인 예제 에러(해결법있음 - 이유모름)
미해결
실전! Querydsl
환경 조인 - 페치 조인 강의를 듣던 중 이 부분 예제를 따라 하다가 보니 java.lang.illegalstateexception: specified field type [interface jakarta.persistence.entitymanagerfactory] is incompatible with resource type [jakarta.persistence.entitymanager] 이라는 exception이 발생했습니다. 강의에서 새로운 프로젝트를 생성하거나 파일을 생성하지 않았으므로 상단에 @PersistenceContext EntityManager em; 가 있고 추가적으로 @PersistenceContext EntityManagerFactory emf; 를 넣어주고 테스트 코드에서 emf.getPersistenceUnitUtil().isLoaded(findMember.getTeam()); 를 실행하였습니다. 일단 entitymanagerfactory는 yml에 있는 설정을 바탕으로 1개가 생성되고 해당 factory에서 요청에 의해 entitymanager를 생성해서 제공하는 형태라는 글을 발견하여 추가적인 의존성 주입에서 2개의 factory 생성되는 이슈가 발생해서가 아닌가 추측을 하고 우선적으로는 사용중인 em에서 factory를 가져올 수 있길래 이렇게 접근했는데 em.getEntityManagerFactory().getPersistenceUnitUtil().isLoaded(findMember.getTeam()); 정상작동은 하긴 하지만 강사님의 경우 추가적인 entitymanagerfactory 주입에도 테스트코드가 돌아갔으므로 정확한 동작 이유를 잘 모르겠어서 혹시 확실한 이유를 알 수 있을까 하여 문의합니다. 바탕
- java
- jpa
- fetch
- querydsl
- entitymanager
- entitymanagerfactory





